工厂模式的好处

时间:2024-10-23 10:10:29编辑:分享君

工厂模式的好处 简单工厂模式的优点

工厂模式是我们最常用的实例化对象模式了,工厂模式在Java程序系统可以说是随处可见。它的好处有:

1、工厂模式可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任。

2、客户端无须知道所创建的具体产品类的类名,只需要知道具体产品类所对应的参数即可,对于一些复杂的类名,通过简单工厂模式可以减少使用者的记忆量。

3、通过引入配置文件,可以在不修改任何客户端代码的情况下更换和增加新的具体产品类,在一定程度上提高了系统的灵活性。


工厂模式的好处

  工厂模式是我们最常用的实例化对象模式了,工厂模式在Java程序系统可以说是随处可见。它的好处有:

  1、工厂模式可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任。

  2、客户端无须知道所创建的具体产品类的类名,只需要知道具体产品类所对应的参数即可,对于一些复杂的类名,通过简单工厂模式可以减少使用者的记忆量。

  3、通过引入配置文件,可以在不修改任何客户端代码的情况下更换和增加新的具体产品类,在一定程度上提高了系统的灵活性。


C#工厂模式和简单工厂模式有什么不同

简单工厂模式是类的创建模式,又叫做静态工厂方法模式。就是由一个工厂类根据传入的参量决定创建出哪一种产品类的实例。一般涉及到三种角色(如下图):

工厂类:担任这个角色的是工厂方法模式的核心,含有与应用紧密相关的商业逻辑。工厂类在客户端的直接调用下创建产品对象,它往往由一个具体的类实现。
抽象产品角色:担任这个角色的类是由工厂方法模式所创建的对象的父类,或她们共同拥有的接口。一般由接口或抽象类实现。
具体产品角色:工厂方法模式所创建的任何对
象都是这个角色的实例,由具体类实现。


简单工厂模式优缺点:
模式的核心是工厂类,这个类负责产品的创建,而客户端可以免去产品创建的责任,这实现了责任的分割。但由于工厂类集中了所有产品创建逻辑的,如果不能正常工作的话会对系统造成很大的影响。如果增加新产品必须修改工厂角色的源码。


C#工厂模式的原理

一、 工厂方法(Factory Method)模式
工厂方法(FactoryMethod)模式是类的创建模式,其用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。

工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。

在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建工作交给子类去做。这个核心类仅仅负责给出具体工厂必须实现的接口,而不接触哪一个产品类被实例化这种细节。这使得工厂方法模式可以允许系统在不修改工厂角色的情况下引进新产品。


在Factory Method模式中,工厂类与产品类往往具有平行的等级结构,它们之间一一对应。




二、 Factory Method模式角色与结构:


抽象工厂(Creator)角色:是工厂方法模式的核心,与应用程序无关。任何在模式中创建的对象的工厂类必须实现这个接口。

具体工厂(Concrete Creator)角色:这是实现抽象工厂接口的具体工厂类,包含与应用程序密切相关的逻辑,并且受到应用程序调用以创建产品对象。在上图中有两个这样的角色:BulbCreator与TubeCreator。

抽象产品(Product)角色:工厂方法模式所创建的对象的超类型,也就是产品对象的共同父类或共同拥有的接口。在上图中,这个角色是Light。

具体产品(Concrete Product)角色:这个角色实现了抽象产品角色所定义的接口。某具体产品有专门的具体工厂创建,它们之间往往一一对应。


为什么要使用工厂模式

问题一:为什么要使用工厂模式? 工厂这个模式它可以隐藏函数的具体实现,并且更加具有封装性,更加的面向对象,这些东西在基耽的编写小程序上并体现不出什么优越性,但在一个大项目中,就显得很重要了,
打个比方就像你如果说只有两三本书,你不需要什么归类放着,但你如果有一个图书管那么多书的话,放书就要有一定的规章,章法,这样就好管理,变更,查找

问题二:为什么要用简单工厂模式 保证代码的可复用,各个子类完全分离,避免了更高代码无意中把原来好的源代码改错,对于开发公司来说,个人自用负责自己对应的子类,就行了,公司也不用把别的子类给你,
===============
如果现在公司要求你为公司的薪资管理系统做维护,原来只有技术人员(月薪) ,市场销售人员(底薪+提成),经理(年薪+股份)三种运算算法,现在要增加 *** 工作人员的(时薪)算法,但按照前面的程序写法,公司就必须要把包含有的原三种算法的运算类给你,让你修改,你如果心中小算盘一打,‘TMD,公司给我的工资这么低,我真是郁闷,这会有机会了’,于是你除了增加了 *** 算法以外,在技术人员(月薪)算法中写了一句
if (员工是自己)
{
salary = salary * 1.1;
}
那就意味着,你的月薪每月都会增加10%(小心被抓去坐牢),本来是让你加一个功能,却使得原有的运行良好的功能代码产生了变化,这个风险太大了。我们应该把加减乘除等运算分离,修改其中一个不影响另外的几个,增加运算算法也不影响其它代码”
这时候就需要用到 简单工厂模式了

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

问题四:使用工厂模式对于设计软件有什么好处? 工厂模式为什么叫做工厂模式? 在满足一定开闭原则的基础之上,使得软件具有一定的封装性和层次结构性,以及各类完成任务的单一性;
之所以叫做工厂模式,其实就是想我们在开发软件的时候联系到社会上的实际情况,社会上的工业流程大多也遵照工厂模式!
上述均个人理解..

问题五:为什么要在JAVA工厂模式中使用静态方法 百度了一下,发现百度了一堆垃圾,根本没有找到自己想要的答案。后来去Stack Overflow,果然找到了相关的问题。因为是英文的,所以翻译过来并综合整理了一下。 为什么要在工厂模式中使用静态方法 工厂模式是一种封装对象创建的方法。如果不使用工厂模式,你就需要直接使用构造方法来创建对象:Foo x = new Foo() 使用工厂模式,就可以取而代之的调用工厂方法:Foo x = Foo.create() 工厂类的构造方法被标记为private,所以构造方法除了在类的内部被调用以外就不能够被访问。工厂类的其他方法被标记为static,这样就不需要在调用该方法之前必须首先拥有一个该类的对象。 使用工厂模式有一些好处。

问题六:有必要所有类都用简单工厂模式创建吗 简单工厂模式一般用在继承类比较多的情况下,只要声明其父类,子类通过工厂就可以创建出来
而客户端就不用关心具体子类怎么实现了
如果你的子唬就一两个,那就没这个必要
好几种设计模式都是相互矛盾的,要看适用的环境
刚开始学都是这样,生搬硬套反而适得其反
再好好看看书,设计模式不是那么好领悟的

问题七:用 工厂模式开发有什么好处,在什么情况下用工厂模式开发 工厂生产产品,工厂模式实例化对象,当你需要实例化一个对象,并且有不止一个选择(所有供选择的类都实现了同一个接口)的时候针对这一情况写一个通用的方法(方法返回类型是那个共用的接口),这就是工厂模式了。

问题八:实际开发中哪些场景需要用到工厂模式 一般的MVC框架中,都有一个基本的DB数据库基本操作类
我叫它DB class,有一个baseModel class 去继承 db class
baseModel 是所有框架model的基类,需要继承baseModel
baseModel已经有db类的

增删查改的方法了,baseModel其实就是数据库工厂,不同的模型继承baseModel,就有操作不同数据表的对象实例了,这样就用一个基础的class
完成了实例化各个不同数据表的对象,就好像是工厂一样,传不同的表名字就返回给你不同的对象。

问题九:为什么手机按开机键和音量键进入的是工厂模式 Recovery模式刷机方法:

步骤一、首先要确定手机是否刷入了Recovery ,如果没有的需要刷入Recovery才能进入Recovery进行刷机。
步骤二、然后在进入设置把USB调试关闭掉,把刷机包复制到SD卡里面。关闭了USB调试才能读取出来手机内存。
步骤三、然后在进入recovery模式,进入recovery模式的按键有的不一样。有的可以从电脑控制进入recovery模式,有的按着开机键+音量键就能进入recovery模式。进入recovery模式之后先清除所有的数据。
步骤四、然后在清除手机里面的缓存数据,这些操作上下就可以使用音量键调节。确定就是开机键。步骤五、然后在选择刷机包,一般是装在SD卡上面的。所以从SD卡上面选择刷机包。
步骤六、刷机包是ZIP文件,点击从SD卡上面选择ZIP文件。然后选择刷机包的文件点击确定即可。
按着电源键重新启动即可退出。

问题十:之前一直不明白工厂模式的好处是什么,就是为什么不用new,有人说假如有成百上千和地方都用的是new 工厂模式是多态的一个应用,new对象的时候都用父类引用,更改的时候就不用变


上一篇:肖申克的救赎演员

下一篇:没有了