二維碼
企資網

掃一掃關注

當前位置: 首頁 » 企資快訊 » 辦公 » 正文

Java23種設計模式之工廠模式

放大字體  縮小字體 發布日期:2021-08-18 12:53:25    作者:王恒    瀏覽次數:19
導讀

優點:用戶只需要知道具體工廠的名稱就可得到所要的產品,無須知道產品的具體創建過程。靈活性增強,對于新產品的創建,只需多寫一個相應的工廠類。典型的解耦框架。高層模塊只需要知道產品的抽象類,無須關心其他實

優點:

用戶只需要知道具體工廠的名稱就可得到所要的產品,無須知道產品的具體創建過程。

靈活性增強,對于新產品的創建,只需多寫一個相應的工廠類。

典型的解耦框架。高層模塊只需要知道產品的抽象類,無須關心其他實現類,滿足迪米特法則、依賴倒置原則和里氏替換原則。

缺點:

類的個數容易過多,增加復雜度

增加了系統的抽象性和理解難度

抽象產品只能生產一種產品,此弊端可使用抽象工廠模式解決。

應用場景:

客戶只知道創建產品的工廠名,而不知道具體的產品名。如 TCL 電視工廠、海信電視工廠等。

創建對象的任務由多個具體子工廠中的某一個完成,而抽象工廠只提供創建產品的接口。

客戶不關心創建產品的細節,只關心產品的品牌

模式的結構與實現

工廠方法模式由抽象工廠、具體工廠、抽象產品和具體產品等4個要素構成。本節來分析其基本結構和實現方法。

1. 模式的結構

工廠方法模式的主要角色如下。

抽象工廠(Abstract Factory):提供了創建產品的接口,調用者通過她訪問具體工廠的工廠方法 newProduct() 來創建產品。

具體工廠(ConcreteFactory):主要是實現抽象工廠中的抽象方法,完成具體產品的創建。

抽象產品(Product):定義了產品的規范,描述了產品的主要特性和功能。

具體產品(ConcreteProduct):實現了抽象產品角色所定義的接口,由具體工廠來創建,她同具體工廠之間一一對應。

其結構圖如圖 1 所示。

來源:http://c.biancheng.net/view/1351.html

 
(文/王恒)
免責聲明
本文僅代表作發布者:王恒個人觀點,本站未對其內容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內容,一經發現,立即刪除,需自行承擔相應責任。涉及到版權或其他問題,請及時聯系我們刪除處理郵件:weilaitui@qq.com。
 

Copyright ? 2016 - 2025 - 企資網 48903.COM All Rights Reserved 粵公網安備 44030702000589號

粵ICP備16078936號

微信

關注
微信

微信二維碼

WAP二維碼

客服

聯系
客服

聯系客服:

在線QQ: 303377504

客服電話: 020-82301567

E_mail郵箱: weilaitui@qq.com

微信公眾號: weishitui

客服001 客服002 客服003

工作時間:

周一至周五: 09:00 - 18:00

反饋

用戶
反饋

日韩欧美国产免费看清风阁