[英]How does the prototype pattern solve the abstract factory pattern issue with many product family?
在Design Patterns Elements of Reusable Object-Oriented Software中,它指出抽象工厂模式中的一个问题如下:
- 支持新产品很困难。 扩展抽象工厂以生产新型产品并不容易。 那是因为 AbstractFactory 接口固定了可以创建的产品集。 支持新型产品需要扩展工厂接口,这涉及更改 AbstractFactory class 及其所有子类。 我们在实施部分讨论了这个问题的一种解决方案。
在实施部分:
如果可能有许多产品系列,则可以使用原型 (117) 模式来实现具体工厂。 具体工厂使用系列中每个产品的原型实例进行初始化,并通过克隆其原型来创建新产品。 基于原型的方法消除了为每个新产品系列创建新的具体工厂 class 的需要。
我不认为我明白了。 根据我的理解,原型实现如何使具有相同属性的可克隆对象解决这个问题?
不完全确定,但我认为这就是他们的意思......
有了抽象工厂,我们每个家庭都有一个具体的工厂:
有了原型,我们就有了一个具体的工厂,配置了给定系列的组件原型:
例如
UIComponentFactory windowsComponentFactory = new UIComponentFactory(
new WindowsDropdownComponent(), new WindowsTextboxComponent()
);
UIComponentFactory macComponentFactory = new UIComponentFactory(
new MacDropdownComponent(), new MacTextboxComponent()
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.