讀書筆記:設計原則和設計模式
1.設計原則
1.單一職責原則
定義:應該有且僅有一個原因引起類的變更。
2.里氏替換原則
定義:所有引用基類的地方必須能透明地使用其子類的物件
四層含義:
1.子類必須完全實現父類的方法
2.子類可以有自己的個性
3.覆蓋或實現父類的方法時輸入引數可以被放大
4. 覆寫或實現父類的方法時輸出結果可以被縮小
3.依賴倒置原則
定義:高層模組不應該依賴低層模組,兩者都應該依賴其抽象;抽象不應該依賴細節;細節應該依賴抽象。
java中含義:(面向物件程式設計)
1.模組間的依賴通過抽象發生,實現類之間不發生直接的依賴關係,其依賴關係是通過介面或抽象類產生的;
2.介面或抽象類不依賴於實現類;
3.實現類依賴介面或抽象類。
4.介面隔離原則
含義:
1.客戶端不應該依賴它不需要的介面;
2.類間的依賴關係應該建立在最小的介面上。
衡量介面是否滿足隔離原則:
1.一個介面只服務於一個子模組或業務邏輯;
2.通過業務邏輯壓縮介面中的public方法,介面時常去回顧,儘量讓介面達到“滿身筋骨肉”,而不是“肥嘟嘟”的一大堆方法。
5.迪米特法則(最少知識原則)
含義:一個物件應該對其他物件有最少的瞭解。
理解:對所呼叫的類不需要知道內部實現細節。
6.開閉原則
含義:一個軟體實體如類、模組和函式應該對擴充套件開放,對修改關閉
理解:對功能的擴充套件時,要擴充套件原有介面或類,不要去修改已經正在實用的類。
2.設計模式
1.單例模式
含義:確保某一個類只有一個例項,而且自行例項化並向整個系統提供這個例項。
2.工廠方法模式
定義:定義一個用於建立物件的介面,讓子類決定例項化哪一個類。工廠方法使一個類的例項化延遲到其子類。
理解:需要傳入被建立類的class,通過反射建立例項物件。
3.抽象工廠模式
定義:為建立一組相關或相互依賴的物件提供一個介面,而且無須指定它們的具體類。
理解:不需要傳入class,由工廠建立方法直接new 物件出來。
4.模板方法模式
定義:定義一個操作中的演算法的框架,而將一些步驟延遲到子類中。使得子類可以不改變一個演算法的結構即可重定義該演算法的某些特定步驟。
理解:在抽象類中實現基本方法,在該基本方法中可以呼叫在子類中才實現的方法。
5.建造者模式
定義:將一個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。
理解:建立物件和物件行為分離開來,建立這可以生產各種型別的物件。
6.代理模式
定義:為其他物件提供一種代理以控制對這個物件的訪問。
理解:使用者呼叫時使用代理類,真正執行時代理方法呼叫的是原始類的方法。