[英]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.