Carey_ccl -
四、裝飾者模式
一、模式定義
在不改變原有對象的前提下(不改變ConcreteComponent情況下),給原有對象擴展功能(利用ConcreteDecorator擴展功能,在ConcreteDecorator中注入ConcreteComponent)。如下所示:
二、應用場景
擴展一個類的功能,或者給一個類添加一些附加職責
三、優點:
①、靈活改變組合;
②、符合開閉原則;
四、裝飾者模式
軟件設計
Carey_ccl -
三、適配器模式
一、模式定義
將一個類的接口轉換成使用者希望的另一個接口,Adapter模式使得原本由於接口不兼容而不能一起工作的那些類可以一起工作。
二、應用場景
當使用者用到的某些類的接口與其它代碼不兼容時,就可以使用適配器模式來改造。當使用者希望重用幾個現有的子類,但這些類缺少一些不能添加到超類中的公共功能時,也可以使用適配器模式。
2.1、優點
①、符合單一職責原則(Singl
軟件設計
Carey_ccl -
二、工廠模式
一、普通工廠模式
1.1、模式定義:
定義一個用於創建對象的接口,讓子類決定去實例化哪一個類:其中的抽象工廠方法(factoryMethod),就是使得一個類的實例化延遲到了子類。
1.2、應用場景
①、當使用者不知道要創建的對象的確切類型時候;
②、當使用者希望為庫或者框架提供擴展其內部組件的方法時;
1.3、優點
將具體要創建的對象和創建者解耦:
①、符合單一職責原
軟件設計
Carey_ccl -
一、單例模式
一、模式定義:
保證一個類只有一個實例,並且提供一個全局訪問點
二、使用場景:
重量級對象,不需要多個實例,如:線程池,數據庫連接池
三、類圖:
四、不同方式創建的單例設計與區別
4.1、懶漢單例模式
懶漢單例模式的特點是延遲加載,只有在真正使用的時候,才開始實例化,用該方式創建單例對象時,對於線程安全問題和指令重排序導致的初始化並且引用賦值失敗的問題,可以用以下2種方式來解決:
軟件設計
Carey_ccl -
設計模式的前言——Solid設計原則
Solid原則是為針對面向對象的程序語言設計,從本質上來講,SOLID是5個原則的縮寫,這5個原則有助於軟件設計:更加容易理解,更靈活,可維護性更強。這個與掌握軟件設計原理無關,這個原理是很多原則的子集。
單一職責原則(Single responsibility principle)
開閉原則(open-closed principle)
里氏替換原則(liskov substitut
軟件設計