參考:常用的設計模式彙總,超詳細!
這個模式本身很簡單而且使用在業務較簡單的情況下。一般用於小專案或者具體產品很少擴充套件的情況(這樣工廠類才不用經常更改)。
它由三種角色組成:
來用類圖來清晰的表示下的它們之間的關係:
抽象工廠模式:
先來認識下什麼是產品族: 位於不同產品等級結構中,功能相關聯的產品組成的家族。
圖中的bmwcar和benzcar就是兩個產品樹(產品層次結構);而如圖所示的benzsportscar和bmwsportscar就是乙個產品族。他們都可以放到跑車家族中,因此功能有所關聯。同理bmwbussinesscar和benzbusinesscar也是乙個產品族。
可以這麼說,它和工廠方法模式的區別就在於需要建立物件的複雜程度上。而且抽象工廠模式是三個裡面最為抽象、最具一般性的。抽象工廠模式的用意為:給客戶端提供乙個介面,可以建立多個產品族中的產品物件。
而且使用抽象工廠模式還要滿足一下條件:
來看看抽象工廠模式的各個角色(和工廠方法的如出一轍):
Java面試題 設計模式
單例模式 保證被建立一次,節省系統開銷。工廠模式 簡單工廠 抽象工廠 解耦 觀察者模式 定義了物件之間的一對多的依賴,這樣一來,當乙個物件改變時,它的所有的依賴者都會收到通知並 自動更新。外觀模式 提供乙個統一的介面,用來訪問子系統中的一群介面,外觀定義了乙個高層的介面,讓子系統更容易使 用。模版方...
面試題 2 設計模式
指乙個類只有乙個例項,且該類能自行建立這個例項的一種模式。例如,windows 中只能開啟乙個任務管理器,這樣可以避免因開啟多個任務管理器視窗而造成記憶體資源的浪費,或出現各個視窗顯示內容的不一致等錯誤。通過提供乙個靜態的物件instance,利用private許可權的構造方法和getinstanc...
單例設計模式 面試題
設計模式 必須對於多個程式使用同乙個配置資訊物件時,就需要保證其物件的唯一性 如何保證物件的唯一性 不允許其程式new建立物件 在該程式中建立乙個本類例項 對外提供乙個方法讓其他方法可以獲取該物件 2.步驟 私有化該 建構函式 通過new建立乙個在本類物件 定義乙個公有的方法,將建立物件返回.pub...