1. 程式人生 > >面向對象六大原則

面向對象六大原則

錯誤 arch com ont 影響 類對象 對象方法 參考 面向接口

參考自:http://www.cnblogs.com/dolphin0520/p/3919839.html

【1.單一職責原則】

一個類只負責一個功能領域中的相應職責,或者可以定義為:就一個類而言,應該只有一個引起它變化的原因。

一個類不能太“累”!在軟件系統中,一個類(大到模塊,小到方法)承擔的職責越多,它被復用的可能性就越小

【2.開閉原則】

對擴展開放,對修改關閉

解耦初始化反射解耦

   事件系統解耦

策略模式、面向借口編程解耦

【3.依賴倒置原則】

依賴註入DI: http://www.cnblogs.com/zhangchenliang/archive/2013/01/08/2850726.html(十分好的文章)

在實現依賴倒轉原則時,我們需要針對抽象層編程,而將具體類的對象通過依賴註入(DependencyInjection, DI)的方式註入到其他對象中,依賴註入是指當一個對象要與其他對象發生依賴關系時,通過抽象來註入所依賴的對象。常用的註入方式有三種,分別是:構造註入,setter註入(Setter註入)和接口註入

接口註入:策略模式、面向接口編程

【4.接口隔離原則】

使用多個專門的接口,而不使用單一的總接口

【5.裏氏替換原則】

在軟件中將一個基類對象替換成它的子類對象,程序將不會產生任何錯誤和異常,反過來則不成立

(父類可以換成子類 對象,不報錯)

【6.迪米特法則】

<MVP框架就是應用了這點,就是中間墊了一個層 >

如果一個系統符合迪米特法則,那麽當其中某一個模塊發生修改時,就會盡量少地影響其他模塊,擴展會相對容易,這是對軟件實體之間通信的限制,迪米特法則要求限制軟件實體之間通信的寬度和深度。迪米特法則可降低系統的耦合度,使類與類之間保持松散的耦合關系。

迪米特法則還有幾種定義形式,包括不要和“陌生人”說話只與你的直接朋友通信等,在迪米特法則中,對於一個對象,其朋友包括以下幾類:

(1) 當前對象本身(this);

(2) 以參數形式傳入到當前對象方法中的對象;

(3) 當前對象的成員對象;

(4) 如果當前對象的成員對象是一個集合,那麽集合中的元素也都是朋友;

(5) 當前對象所創建的對象。

任何一個對象,如果滿足上面的條件之一,就是當前對象的“朋友”,否則就是“陌生人”。在應用迪米特法則時,一個對象只能與直接朋友發生交互,不要與“陌生人”發生直接交互,這樣做可以降低系統的耦合度,一個對象的改變不會給太多其他對象帶來影響。

迪米特法則要求我們在設計系統時,應該盡量減少對象之間的交互,如果兩個對象之間不必彼此直接通信,那麽這兩個對象就不應當發生任何直接的相互作用,如果其中的一個對象需要調用另一個對象的某一個方法的話,可以通過第三者轉發這個調用。簡言之,就是通過引入一個合理的第三者來降低現有對象之間的耦合度

在將迪米特法則運用到系統設計中時,要註意下面的幾點:在類的劃分上,應當盡量創建松耦合的類,類之間的耦合度越低,就越有利於復用,一個處在松耦合中的類一旦被修改,不會對關聯的類造成太大波及在類的結構設計上,每一個類都應當盡量降低其成員變量和成員函數的訪問權限在類的設計上,只要有可能,一個類型應當設計成不變類在對其他類的引用上,一個對象對其他對象的引用應當降到最低

面向對象六大原則