1. 程式人生 > >三種工廠模式的優劣比較

三種工廠模式的優劣比較

    在工廠方法模式中,一個具體的工廠類負責建立一個單獨的產品,如果有新的產品加進來,只需要增加一個具體的建立產品工廠類和具體的產品類就可以了,不會影響到已有的其他程式碼,程式碼量也不會變大,後期維護更加容易,增加了系統的可擴充套件性。
但是工廠方法模式無法體現產品之間的關係,如果有兩個不同的產品需要建立,就需要兩個不同的工廠類,即使這兩個產品有某鍾必要的聯絡,也還是需要兩個不同的工廠類。

    在抽象工廠模式中,一個具體的工廠類負責建立一系列相互關聯的產品,當一系列相互關聯的產品被設計到一個工廠類裡後,客戶端的呼叫變得非常簡單;如果要更換這一系列的產品,只需要更換一個工廠類即可,但零件之間的組裝如果放到客戶端,則客戶端變得非常臃腫,如果把零件之間的組裝放在工廠類裡,則又違反了工廠類單一職責的原則,使得工廠類既要負責物件的建立,又要負責產品的組裝。