抽象工厂和工厂方法模式在应用中的不同作用
简单工厂,工厂方法,抽象工厂都属于设计模式中的创建型模式。其主要功能都是帮助我们把对象的实例化部分抽取了出来,优化了系统的架构,并且增强了系统的扩展性。本文是本人对这三种模式学习后的一个小结以及对他们之间的区别的理解。 简单工厂简单工厂模式的工厂类一般是使用静态方法,通过接收的参数的不同来返回不同的对象实例。不修改代码的话,是无法扩展的。 工厂方法工厂方法是针对每一种产品提供一个工厂类。通过不同的工厂实例来创建不同的产品实例。在同一等级结构中,支持增加任意产品。 抽象工厂抽象工厂是应对产品族概念的。比如说,每个汽车公司可能要同时生产轿车,货车,客车,那么每一个工厂都要有创建轿车,货车和客车的方法。应对产品族概念而生,增加新的产品线很容易,但是无法增加新的产品。 小结★工厂模式中,重要的是工厂类,而不是产品类。产品类可以是多种形式,多层继承或者是单个类都是可以的。但要明确的,工厂模式的接口只会返回一种类型的实例,这是在设计产品类的时候需要注意的,最好是有父类或者共同实现的接口。★使用工厂模式,返回的实例一定是工厂创建的,而不是从其他对象中获取的。★工厂模式返回的实例可以不是新创建的,返回由工厂创建好的实例也是可以的。 区别简单工厂:用来生产同一等级结构中的任意产品。(对于增加新的产品,无能为力)工厂方法 :用来生产同一等级结构中的固定产品。(支持增加任意产品) 抽象工厂:用来生产不同产品族的全部产品。(对于增加新的产品,无能为力;支持增加产品族) 以上三种工厂方法在等级结构和产品族这两个方向上的支持程度不同。所以要根据情况考虑应该使用哪种方法。
抽象工厂的三个关键策略是什么
亲、您好很高兴为您解答
抽象工厂的三个关键策略是什么
答:抽象工厂的三个关键策略是在设计中的表现;发现并封装变化点;优先使用对象组合,而不是类继承;针对接口编程,而不是针对实现设计。
工厂方法模式:一个抽象产品类,可以派生出多个具体产品类。一个抽象工厂类,可以派生出多个具体工厂类。每个具体工厂类只能创建一个具体产品类的实例。
抽象工厂模式:多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。每个具体工厂类可以创建多个具体产品类的实例。区别:工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。【摘要】
抽象工厂的三个关键策略是什么【提问】
亲、您好很高兴为您解答
抽象工厂的三个关键策略是什么
答:抽象工厂的三个关键策略是在设计中的表现;发现并封装变化点;优先使用对象组合,而不是类继承;针对接口编程,而不是针对实现设计。
工厂方法模式:一个抽象产品类,可以派生出多个具体产品类。一个抽象工厂类,可以派生出多个具体工厂类。每个具体工厂类只能创建一个具体产品类的实例。
抽象工厂模式:多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。每个具体工厂类可以创建多个具体产品类的实例。区别:工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。【回答】
如何获得正确的工厂对象【提问】
亲,外表干净整洁 女生无一例外的都喜欢干净的男生,一个干净整洁的外表会给女孩留下一个非常好的第一印象。【回答】
击鼓传花提现了什么设计模式【提问】
亲,击鼓传花是一种热闹而又紧张的饮酒游戏。在酒宴上宾客依次坐定位置,由一人击鼓,击鼓的地方与传花的地方是分开的,以示公正。开始击鼓时,花束就开始依次传递,鼓声一落,如果花束在某人手中,则该人就得饮酒。
击鼓传花便是责任链模式的应用。责任链可能是一条直线、一个环链或者一个树结构的一部分。责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织链和分配责任。【回答】
Prototype模式和Factory Method模式之间的区别可以理解为
原型模式虽然是创建型的模式,但是与工厂模式没有关系,从名字即可看出,该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。
public class Prototype implements Cloneable {
public Object clone() throws CloneNotSupportedException {
Prototype proto = (Prototype) super.clone();
return proto;
}
}
工厂模式,简单工厂模式,抽象工厂模式三者有什么区别
工厂模式、简单工厂模式、抽象工厂模式三者的区别:1、创建对象不同。创建对象时,“工厂模式”使用Factory模式替代使用new创建对象;“简单工厂模式”使用fw模式建立对象;“抽象工厂模式”则使用迭代模式创建对象。2、定义变量不同。“工厂模式”不用事先定义变量,使用时随时引用便可。“简单工厂模式”,使用参数或者配置文件等事先定义好的变量,然后利用分支判断初始化具体产品类并返回。“抽象工厂模式则”不符合“开发-封闭”原则,每次增加产品,都需要修改类方法。3、接口数量不同。“工厂模式”有两至三个接口。“简单工厂模式”只有一个接口。抽象工厂模式理论上具有无限个接口。扩展资料编程使用“工厂模式”的优缺点:1、优点:方便扩展算法,比如增加一个开根号的功能,我们只要继续继承运算类就行了,同时客户端也就是使用者不知道具体的实现细节,只要给出相关标示符,工厂函数就马上给他创建一个他想要的实体就行了。减少了使用者和功能开发者之间的耦合度。2、缺点:在进行扩展的时候,我们要更改工厂函数里面的那个分支语句Switch,这样便破坏了OCP,而且当有多级结构继承的时候,简单工厂就会因为只能对应平行一层记得继承,不得不使得好多类继承同一个接口,然后得到A*B这么多的工厂实体可能,工厂函数很难维护。参考资料来源:百度百科--工厂模式
设计模式按创建型模式划分
设计模式按创建类型分为如下六种:1.抽象工厂模式,提供一个创建相关或依赖对象的接口,而不指定对象的具体类。2.工厂方法模式,允许一个类的实例化推迟到子类中进行。3.生成器模式,将一个复杂对象的创建与它的表示分离,使同样的创建过程可以创建不同的表示。4.对象池模式,通过回收不再使用的对象,避免创建和销毁对象时代价高昂的获取和释放资源的过程。5.原型模式,使用原型实例指定要创建的对象类型,通过复制原型创建新的对象。6.单例模式,保证一个类只有一个实例,并且提供对这个实例的全局访问方式。
设计模式按创建型模式划分后
设计模式按创建类型分为如下六种:1.抽象工厂模式,提供一个创建相关或依赖对象的接口,而不指定对象的具体类。2.工厂方法模式,允许一个类的实例化推迟到子类中进行。3.生成器模式,将一个复杂对象的创建与它的表示分离,使同样的创建过程可以创建不同的表示。4.对象池模式,通过回收不再使用的对象,避免创建和销毁对象时代价高昂的获取和释放资源的过程。5.原型模式,使用原型实例指定要创建的对象类型,通过复制原型创建新的对象。6.单例模式,保证一个类只有一个实例,并且提供对这个实例的全局访问方式。