1.單例模式
保證系統中,一個類,只有一個實例,并且提供對外訪問。
優點:只有一個對象,可以節省資源。適合頻繁創建銷毀對象的場景。
實現:要用到static,靜態私有對象。暴露單例的靜態方法。
(1)餓漢模式:對象放在類成員變量中,類加載時,就可以初始化實例。
優點:線程安全,多個線程想要加載類時,只有一個線程可以加載,其它線程要等待。
缺點:會創建一些暫時不需要使用的單例時,浪費資源。降低啟動速度。
(2)飽漢模式:對象創建過程,放到函數方法中。
優點:資源利用率高,延遲對象加載。
缺點:線程不安全。
2. 工廠模式
把對象的創建統一管理,屏蔽創建類的復雜過程的一種設計方法。
(1)簡單工廠:根據傳參不同,返回不同的實例。
優點:簡單,
缺點:不易擴展,增加一個類就要重新修改代碼。
3.觀察者模式
讓多個觀察者對象同時監聽某一個主題對象。這個主題對象在狀態變化時,會通知所有的觀察者對象,使他們能夠自動更新自己,核心在于被觀察者中維護一個觀察者的鏈表,如果被觀察者對象有變化就會遍歷這個鏈表通知觀察者。因此核心在于兩個角色:觀察者與被觀察者。
4.裝飾者模式
動態的給對象添加新功能,核心:被裝飾者(基類)、裝飾者接口、用來裝飾的具體類。