簡體   English   中英

抽象工廠設計模式是否違反打開/關閉原則?

[英]Does Abstract factory design pattern violate open/close principle?

假設我們要創建按鈕和文本區域。

我們可以為 Windows 或 Mac 創建它們。

據我了解,有兩種“switch”或“if”語句,一種用於選擇所需的工廠,一種用於選擇所需的產品。

但是如果我想添加“Linux”工廠和“文本字段”產品,我應該編輯代碼並將第三個選項添加到“if”或“switch”語句中嗎?

是不是違反了開閉原則?

抽象工廠中沒有switchif語句; 但是,關於工廠模式存在大量錯誤信息,因此誤解很常見。 抽象工廠和工廠設計模式有什么區別? 在這方面可能會有所幫助。

盡管如此,抽象工廠模式仍然容易違反 OCP,因為正如您所指出的,沒有明顯的方法可以添加新產品。 GoF 書確實解決了這個限制並提供了一個潛在的解決方案。 請參閱:抽象工廠模式是否有“更多”真實世界示例?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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