簡體   English   中英

原型模式如何解決抽象工廠模式多產品族的問題?

[英]How does the prototype pattern solve the abstract factory pattern issue with many product family?

Design Patterns Elements of Reusable Object-Oriented Software中,它指出抽象工廠模式中的一個問題如下:

  1. 支持新產品很困難。 擴展抽象工廠以生產新型產品並不容易。 那是因為 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM