黎克特制替換原則:
父類能出現的地方,子類也能出現;
子類盡量避免「個性」,一旦把子類當作父類使用時子類的「個性」被抹殺掉;
避免紛爭,規則壓制:
子類繼承父類,如果子類要過載父類的方法,該方法的引數型別範圍要大於等於父類,返回引數要小於父類的返回型別(這樣避免混淆);
依賴倒轉原則:
1)建構函式傳遞依賴物件:
public inte***ce driver()
public inte***ce car()
public class driver1 implements driver()
public void drive();
}2)setter傳遞依賴物件:
public inte***ce driver()
public inte***ce car()
public class driver1 implements driver();
public void drive();
}3)介面宣告依賴物件:
public inte***ce driver()
public inte***ce car()
public class driver1 implements driver();
}介面隔離原則:
1)介面裡面的方法盡量要少;(類a依賴的介面b,b介面中的方法盡量要少,最好是b介面中沒有類a所用不到的方法)
2)乙個介面只服務於乙個模組;
3)提高內聚,減少對外互動。使介面用最少的方法去完成最多的事情(盡量少提供public方法)
**模式:**類和被**類都要實現同乙個介面或者抽象類;
1)普通**:**類中要有乙個將被**的物件;例如:王婆子類裡面要有個西門慶物件,王婆子做的事情,實際也就是西門慶在做;
2)強制**:建立真實的物件時,返回的是他的乙個**;
中介者模式:
適用於幾個物件之間緊密的耦合;
把物件之間複雜的邏輯關係交給中介者去處理;(例如:我想租房子,我只要找到中介就可以了,剩下的是就是中介找房子,還有一些亂七八糟的了,我就不需要關心了)
設計模式筆記
1 類繼承與介面繼承的比較。物件的類與物件的型別的比較 乙個物件的類定義了物件怎麼樣實現的,同時也定義物件內部狀態和操作的實現。但是物件的型別只與他的介面有關,藉口即物件能響應的請求的集合。乙個物件可以有多個型別,不同的類物件可以有相同的型別。理解類繼承和介面繼承之間的差別也十分重要。類繼承根據乙個...
設計模式筆記
設計模式是一種真理,我們在沒有學習過設計模式時都會或多或少的與他不謀而合,但是學習過後我們可以把他從經驗性的東西提煉為理論性的,並且反過來再指導實踐,這應該就是我們學習並使用設計模式的初衷,這好比是政經中的價值規律,任何人都知道東西如果少了而需求大,它 馬上就漲,而反過來 就賤,可是學過政經後就可以...
設計模式筆記
設計模式精解p136,第11章 專家如何進行設計 alexander提到 從片段開始設計不是乙個好的設計方法。即將預先成型的部分新增在一起是無法得到優秀的軟體設計的。但還是可以得到可以工作的軟體的,只是大部分時候難於修改或擴充套件 我的觀點 軟體或者軟體系統都是由 功能模組 和這些 模組之間的聯絡 ...