new創造對象的方式實際本質是面向實現編程,不是面向接口編程。代碼綁着具體的實現會使代碼更加脆弱。
工廠模式解決的一般是對象的實例化問題。把new的放在代碼中,不利於拓展維護。
變化的部分和不變的部分。類的具體實例化抽出來,放置在一個類中。維護擴展運行。耦合程度降低。
簡單工廠模式:定義一個創建對象的類,由這個類封裝實例化對象的行爲。把原來的代碼取出來封裝。
對象的實例化放在主程序中,依賴性影響不好。
工廠模式:定義了一個創建對象的抽象方法。由子類決定要實例化的類。工廠方法模式將對象的實例化推到子類。
抽象工廠模式:定義了一個接口用於創建相關的或有依賴關係的對象族,無需明確指定具體類
依賴抽象原則:
變量不要持有具體類的引用。
不要讓類繼承具體類,讓它繼承接口或抽象類。
不要覆蓋基類中已經實現的方法。