1. 程式人生 > >面向物件的基本原則

面向物件的基本原則

一、可維護性

高內聚、低耦合

高內聚,是針對一個元件(類)內部而言,如果一個元件幹了好幾件不相關的事情,那麼元件內部就比較散,出問題是遲早的事情。中原大戰之後,蔣介石表面上統一了各個軍閥,實際上,他們內部之間不夠內聚,一盤散沙。

低耦合,是針對多個元件之間的關係。老死不相往來,是理想國,也就沒有什麼矛盾,但這是不可能的。所以,儘量減少類之間的依賴。

Soc

關注分離點,我們經常說mvc模式是關注分離點的。什麼意思呢?可以把mvc看成三個大的元件,每個元件都幹自己的事情,model專注業務邏輯、view專注頁面展示、controller專注控制,把適當的model推給適當的view

二、面向物件設計

面向介面程式設計

利於擴充套件

組合優於繼承

無論是組合還是繼承,都是可以擴充套件物件的功能。從耦合性上來講,組合當然優於繼承。介面卡模式(包裝器模式)有兩種實現方式

隔離可能改變的部分

把經常變化的部分以抽象的方式隔離起來

SOLID原則

1、單一責任原則 (SRP)

2、開放/封閉原則(OCP)

3、里氏替換原則(LSP)

4、介面分離原則(ISP)

5、依賴反轉原則(DIP)

   KISS (keep it simple,stupid)

   DRY (don't repeat yourself)

三、設計模式

需求和重構

按照oo原則來設計,結果並不一定是某種設計模式,但是可能非常接近某種模式,這時候,可以考慮是否使用模式

四、編寫優質軟體

可測試性

虛擬物件(虛擬化框架)

仿冒物件

可擴充套件性

基於介面的設計

外掛架構(好的框架都是具有外掛的架構,如Asp.net,可通過配置檔案註冊響應模組和處理器)

可讀性

1、註釋(包括命名)

2、清晰(程式碼結構)

3、短的更好 

4、一致性

   

  

&n