如題,今天我要將工廠模式三兄弟總結下,工廠三兄弟即:簡單工廠模式、工廠方法模式、抽象工廠模式。
簡單工廠模式簡單工廠:簡單工廠定義了一個用於生產對象的類,用來封裝生產不同的產品實例的細節,使創建對象的邏輯與客戶端相分離。客戶端只需要向這個類進行申請,即可獲得相應的產品實例,不需要關心對象的創建過程。
簡單工廠模式的組成:工廠類、抽象產品類、具體產品類。
優點:封建對象的創建過程,使客戶端與具體的創建對象邏輯相分離。
缺點:在進行功能的擴展時,需要修改生產對象類中的switch語句,導致不符合開放-封閉原則。
UML圖
工廠方法模式:定義一個用於創建對象的接口,子類來決定實例化哪一個類。工廠方法使類的實例化延遲到子類中。
工廠方法模式的組成:抽象工廠類、具體工廠類、抽象產品類、具體產品類
優點:符合單一職責原則,每個工廠只負責它自己的產品。
缺點:如果需要增加新的產品,就必須擴建一個新的工廠類。
UML圖
抽象工廠模式:抽象工廠提供了一個創建一系列相關且或互相依賴對象的接口,無需指定他們具體的類。
抽象工廠模式的組成:抽象工廠類、具體工廠類、抽象產品類、具體產品類
優點:方便在生產不同的產品之間切換,如果想要生產不同的產品,只需要切換具體的工廠類。
缺點:擴充新的產品時比較繁瑣
UML
寫在結尾:
看我畫的UML圖,大概就知道我減肥的心態了吧。