java開發設計六大基本原則

遵循單一職責原則

  1. 一個類只專一於作一件事; 
  2. 高內聚,低耦合;

開放-封閉原則

  1. 對拓展開放,對修改關閉(儘量不動原有代碼進行拓展); 
  2. 高內聚,低耦合; 
  3. 爲達到目的,需對系統進行抽象化設計(關鍵); 

UML舉例: 編程

這裏寫圖片描述

里氏代換原則(LSP)

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

UML實例: spa

這裏寫圖片描述

士兵只能使用WeaponGun,而沒法使用ToyGun殺敵,若是使用ToyGun將會出錯。這就是里氏替換原則。設計

依賴倒置原則

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

接口隔離原則(Interface Segregation Principle)

  1. 使用多個專注功能的接口比使用一個總接口總要好,但不能過渡; 
  2. 一個接口不能過於臃腫; 
  3. 高內聚 
  4. 會使一個軟件系統功能拓展時,修改的壓力不會影響到別的對象那去; 

UML實例: 對象

這裏寫圖片描述

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

迪米特法則(Law of Demeter)

  1. 又叫最少知識原則; 
  2. 對象與對象之間應該使用盡量少的方法來關聯,避免千絲萬縷的關係; 
  3. 低耦合; 
  4. 類知道其餘類應儘可能少; 
  5. 類能夠訪問其餘類的方法或者屬性也應儘可能少;

這裏寫圖片描述

若是Lily和Jack本身作hamburg那麼就會與Vegetable、Meat、Bread產生千絲萬縷關係。上圖,則由KFC來作,這樣Lily和Jack就只與Hamburg有關關聯,與材料就沒有關聯了。圖片

相關文章
相關標籤/搜索