抽象工厂模式和原型模式之间的区别是什么?

Posted 四猿外

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了抽象工厂模式和原型模式之间的区别是什么?相关的知识,希望对你有一定的参考价值。

抽象工厂模式:

通常由工厂方法模式来实现。但一个工厂中往往含有多个工厂方法生成一系列的产品。这个模式强调的是客户代码一次保证只使用一个系列的产品。当要切换为另一个系列的产品, 换一个工厂类即可。

原型模式:

工厂方法的最大缺点就是,对应一个继承体系的产品类, 要有一个同样复杂的工厂类的继承体系。我们可以把工厂类中的工厂方法放到产品类自身之中吗?如果这样的话,就可以将两个继承体系为一个。这也就是原型模式的思想,原型模式中的工厂方法为clone,它会返回一个拷贝( 可以是浅拷贝,也可以是深拷贝,由设计者决定)。

为了保证用户代码中到时可以通过指针调用clone 来动态绑定地生成所需的具体的类,这些原型对象必须事先构造好。

原型模式想对工厂方法模式的另一个好处是,拷贝的效率一般对构造的效率要高。

以上是关于抽象工厂模式和原型模式之间的区别是什么?的主要内容,如果未能解决你的问题,请参考以下文章

创建类模式大PK

设计模式-创建型模式讲解(单例原型工厂方法抽象工厂建造者)

Java设计模式图文代码案例详解Java五大创建者模式 建造者原型(抽象)工厂单例模式

工厂模式和原型模式

设计模式:原型模式

设计模式研究