1. 程式人生 > >java開發設計六大基本原則

java開發設計六大基本原則

開閉原則 del 應該 這就是 就是 影響 baby 接口隔離原則 客戶

1.遵循單一職責原則


一個類只專註於做一件事;
高內聚,低耦合;

2.開放-封閉原則


對拓展開放,對修改關閉(盡可能不動原有代碼進行拓展);
高內聚,低耦合;
為達到目的,需對系統進行抽象化設計(關鍵);
UML舉例:
技術分享圖片

3.裏氏代換原則(LSP)


子類必須能夠替換它們的基類型,基類與子類可互換,客戶端沒有察覺情況下;
低耦合;
很容易實現同一父類下的各個子類的互換,而客戶端可以毫不察覺;

UML實例:
技術分享圖片

士兵只能使用WeaponGun,而無法使用ToyGun殺敵,如果使用ToyGun將會出錯。這就是裏氏替換原則。

4.依賴倒置原則


這個是開閉原則的基礎,具體內容:面向接口編程,依賴於抽象而不依賴於具體。寫代碼時用到具體類時,不與具體類交互,而與具體類的上層接口交互。

5.接口隔離原則(Interface Segregation Principle)


使用多個專一功能的接口比使用一個總接口總要好,但不能過渡;
一個接口不能過於臃腫;
高內聚
會使一個軟件系統功能拓展時,修改的壓力不會影響到別的對象那去;
UML實例:
技術分享圖片

Model只要滿足好身材這個條件,就有可能成為模特,漂亮女孩滿足好身材和好。AngelaBaby即有好身材又好。

6.迪米特法則(Law of Demeter)


又叫最少知識原則;

對象與對象之間應該使用盡可能少的方法來關聯,避免千絲萬縷的關系;
低耦合;
類知道其他類應盡量少;
類可以訪問其他類的方法或者屬性也應盡量少;

技術分享圖片

如果Lily和Jack自己做hamburg那麽就會與Vegetable、Meat、Bread產生千絲萬縷關系。上圖,則由KFC來做,這樣Lily和Jack就只與Hamburg有關關聯,與材料就沒有關聯了。

java開發設計六大基本原則