×

工厂模式的好处

工厂模式的好处(工厂模式,简单工厂模式,抽象工厂模式 三者有什么区别)

admin admin 发表于2023-06-12 10:12:14 浏览29 评论0

抢沙发发表评论

本文目录

工厂模式,简单工厂模式,抽象工厂模式 三者有什么区别

工厂模式的好处就在于将工厂和产品之间的耦合降低,将具体产品的构造过程放在了具体工厂类里面。在以后扩展产品的时候方便很多,只需要添加一个工厂类,一个产品类,就能方便的添加产品,而不需要修改原有的代码。而在简单工厂中,如果要增加一个产品,则需要修改工厂类,增加if/else分支,或者增加一个case分支,工厂模式符合软件开发中的OCP原则(open close principle),对扩展开放,对修改关闭。
抽象工厂模式:这个模式我总是感觉和builder模式非常相似。
工厂方法模式提供的是对一个产品的等级模式,,而抽象工厂方法提供的是对多个产品的等级模式,注意,这里的多个具体产品之间是相互耦合的,也就是说这里的抽象工厂提供的产品之间是存在某种联系的。
有人做如下的比较:
工厂方法模式:一个抽象产品类,可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
每个具体工厂类只能创建一个具体产品类的实例。
抽象工厂模式:多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
每个具体工厂类可以创建多个具体产品类的实例。
区别:工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。
工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。
下面是一个形象的比喻:
无论是简单工厂模式、工厂模式还是抽象工厂模式,它们本质上都是将不变的部分提取出来,将可变的部分留作接口,以达到最大程度上的复用。拿一个生产水杯(cup)的工厂举例:起初,不用工厂模式,我必须在生产水杯之前知道水杯的材料和形状等水杯的所有特征才能生产,这就是我们的new Cup();这个Cup必须是具体的。厂主发现同一形状的被子,只是材料不同,如一个是玻璃(glass)的,一个是瓷(china)的,但是确要两条生产线,显然有资源浪费的嫌疑。现在厂主生产杯子时先不让生产线知道我要产的是玻璃的还是瓷的,而是让它在不知道具体材料的情况下先做它能做的,等到它把模具做好,只需要向其中填充玻璃原料或者瓷原料就可以造出同一形状的具体杯子了。但是很可惜,java并不能new一个抽象的Cup,所以就有了简单工厂模式。原来是Cup cup=new Cup;现在是SimpleCupFactory.createCup(String cupName),根据cup的名字生产Cup,而createCup返回的是一个实现了 Cup接口或抽象类的具体Cup。简单抽象工厂模式有一个问题,就是当我现在想生产一个同样形状的铁杯时,工厂里并没有定义相应的处理流程,只能更改createCup方法,这就不合理了。我现在只是想生产铁杯,你只要在最后的时候把玻璃原料换成铁的不就行了吗,干嘛还要更改整条生产线呢?于是就有了工厂模式。原来生产线在生产模具的时候还要考虑是为玻璃杯生产的模具还是为铁杯生产的模具,现在它不用管了。CupFactory.createCup()创建Cup.CupFactory是接口或抽象类。实现它的具体子类会创建符合Cup接口的具体Cup。那么现在厂主想要生产水壶(kettle),用工厂模式就不得不再造一条水壶生产线,能不能在水杯生产线同时生产水壶呢?这就是抽象工厂模式。

java里使用工厂模式到底有什么好处

如果有许多地方都需要生成A的对象,那么你需要写很多A a=new A()。
如果需要修改的话,你要修改许多地方。
但是如果用工厂模式,你只需要修改工厂代码。其他地方引用工厂,可以做到只修改一个地方,其他代码都不动,就是解耦了。

什么叫做工厂模式能举个例子吗,他有什么好处 ,

工厂模式的特点就是隐藏了创建示例的细节
打个比方 User teacher student, 老师和学生都是用户的之类
UserFactory.creator(“teacher“) UserFactory.creator(“student“)
通过这样的形式,你能隐藏真正创建的细节
而且替换原来的逻辑也变得统一
这个也不是三言两语能讲清楚的
胡乱说说
模式是要在大量的实践中,通过重构来理解的
程序开发本身是个实践性很强的领域

谁能说下 .net 工厂模式的好处

工厂模式主要为了根据配置快速地切换数据库 这是优势
其次是为系统结构提供了灵活的动态扩展机制 就是层次清晰 方便团队之间的协作
个人拙见 呵呵

工厂模式,简单工厂模式,抽象工厂模式三者有什么区别

工厂模式、简单工厂模式、抽象工厂模式三者的区别:

1、创建对象不同。创建对象时,“工厂模式”使用Factory模式替代使用new创建对象;“简单工厂模式”使用fw模式建立对象;“抽象工厂模式”则使用迭代模式创建对象。

2、定义变量不同。“工厂模式”不用事先定义变量,使用时随时引用便可。“简单工厂模式”,使用参数或者配置文件等事先定义好的变量,然后利用分支判断初始化具体产品类并返回。“抽象工厂模式则”不符合“开发-封闭”原则,每次增加产品,都需要修改类方法。

3、接口数量不同。“工厂模式”有两至三个接口。“简单工厂模式”只有一个接口。抽象工厂模式理论上具有无限个接口。

扩展资料

编程使用“工厂模式”的优缺点:

1、优点:

方便扩展算法,比如增加一个开根号的功能,我们只要继续继承运算类就行了,同时客户端也就是使用者不知道具体的实现细节,只要给出相关标示符,工厂函数就马上给他创建一个他想要的实体就行了。减少了使用者和功能开发者之间的耦合度。

2、缺点:

在进行扩展的时候,我们要更改工厂函数里面的那个分支语句Switch,这样便破坏了OCP,而且当有多级结构继承的时候,简单工厂就会因为只能对应平行一层记得继承,不得不使得好多类继承同一个接口,然后得到A*B这么多的工厂实体可能,工厂函数很难维护。

参考资料来源:百度百科--工厂模式


谁能介绍一下工厂模式的好处

MVC模式:它能够在后期使你的代码比较清晰,修改各层比较方便。控制也非常清晰,别人看你的代码也好看,调试也好调。虽然你现在看不到好处,但是养成一个良好的习惯对以后会有很大的帮助。

使用工厂模式对于设计软件有什么好处 工厂模式为什么叫做工厂模式

使用工厂模式最大的好处是解耦合
最开始创建对象是用new,就是原始社会要用斧头得自己造,这是最不好的
进入工业社会,也就是所说的工厂模式,有了工厂,工厂可以生产斧头,直接可以从工厂买
当然更高级的是控制反转,也叫依赖注入,从配置文件中配置,相当于进入社会主义了,有人直接把斧头送到你手上,对象就这么生成出来了,明白为什么要用工厂模式了吧?

C#编程为什么要使用工厂模式,有什么好处

主要是为了:其一,避免代码复用;其二,有利于项目的维护;其三,有利于团队开发。谢谢采纳!
备注:所谓“复用”就是代码的重复使用!“修改”就是说如果代码出现错误或者要再添加什么功能的话,可以直接对工厂模式某个层进行植入代码!

工厂模式有什么优点

工厂模式的优点是为系统结构提供了灵活的动态扩展机制。方便维护。
例如:请朋友去麦当劳吃汉堡,不同的朋友有不同的口味,要每个都记住是一件烦人的事情,如果你采用Factory Method模式,带着朋友到服务员那儿,说“要一个汉堡”,具体要什么样的汉堡呢,让朋友直接跟服务员说就行了。