#指尖人生#面向对象设计常用的设计模式-简单工厂模式
Posted Louie_Ma
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#指尖人生#面向对象设计常用的设计模式-简单工厂模式相关的知识,希望对你有一定的参考价值。
设计模式这一概念最初源于建筑学,它的提出者克里斯托弗-亚历山大认为建筑设计要围绕以人为本的目的。建筑物要基于社会和人性来设计,程序设计亦是如此。
虽然简单套用模式并不能解决所有问题,但是模式这一理念对一些广泛的基础场景指出了最佳实践,是一种务实的分析和设计方法,是值得程序设计者学习和理解的,并时刻提醒设计者,设计模式的核心意义就是以人为本,设计要服务于人。
1994年,由四位面向对象领域专家合著出版了《设计模式:可复用面向对象软件的基础》,这本书中介绍了程序设计中常用的23中设计模式。这篇文章将介绍其中之一-简单工厂模式
模式简介
简单工厂模式是一种创建型模式,其核心是定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。
现实应用
我们出去吃饭,一般都会拿着菜单点菜,并告诉服务员有什么忌口,点好了之后服务员会通知后厨按照我们所点的菜品和要求去烹调。但如果我们去的是一家经常光顾的小店,跟老板娘非常熟悉,我们只要跟老板娘说”老规矩“,老板娘马上就心领神会了。
这里的”老规矩“就代表一个参数,只需要简单地告诉老板娘,老板娘就可以制作出我们想要的菜品。可实际上我们并不一定有这样的魅力让老板娘这么了解我们,若要追求类似的效果,就只能去快餐店,对服务员说要个”A套餐“。
上述这个过程就类似于简单工厂模式。
程序设计分析
对于调用者,如何才能做到不用关心制造细节,只要传入一个正确的参数就可以获取所需要的对象呢?
试想如果有一个工厂一样的类对象,根据传入的参数,生产出需要的对象实例,这个问题是不是就迎刃而解了呢。
解决方案
定义一个工厂类A,它可以根据参数的不同来返回不同类的实例,比如传入工厂类方法参数字符串S1,类工厂就会创建对应的对象S1。
被创建的实例通常都具有共同的父类,如抽象产品类B。在简单工厂模式中,用于创建实例的方法可以是静态方法(即不用创建工厂类对象实例就可以开工生产的模式),简单工厂模式又被称为静态工厂方法模式。
以上是关于#指尖人生#面向对象设计常用的设计模式-简单工厂模式的主要内容,如果未能解决你的问题,请参考以下文章