文章出處

前言:在一個面向對象的系統中,系統的各種功能是由許許多多的不同對象協作完成的。在這種情況下,各個對象內部是如何實現對系統設計人員來說就不那么重要;而各個對象之間的協作關系則成為系統設計的關鍵。小到不同類之間的通信,大到各模塊之間的交互,在系統設計之初都是要著重考慮的,這也是系統設計的主要工作內容。

 
    對象是接口的實現,面向對象的設計其本質就是面向接口的設計,類和模塊之間的交互是由接口完成的,接口是定義和實現的分離。
 
    對接口的理解:
    1、接口是一些方法特征的集合,這些方法是在系統中不斷的出現。常用的接口包括:單方法接口、標識接口、不建議使用的常量接口
    2、接口是更深層次的理解,應是定義(規范,約束)與實現(名實分離的原則)的分離。
    3、接口的本身反映了系統設計人員對系統的抽象理解。
    4、接口分為兩類,對個體的抽象,我們稱之為抽象體(abstract class);對個體某方面的抽象,我們稱之為抽象面(interface)。一個抽象體可以有多個抽象面,抽象體應當擁有盡可能多的共同代碼,擁有盡可能少的數據。
 
    面向接口設計遵循的原則: 
    1、開閉原則:模塊可以不被修改的前提下擴展,面向對象設計的重要原則是創建抽象化,并且從抽象化導出具體化。
    2、里氏代換原則:一個實體如果使用的是一個基類的話,那么一定適用于其子累
    3、依賴倒轉原則:要依賴于抽象,不要依賴于具體
    4、接口隔離原則:使用多個專門的接口,比使用單一的總接口要好
    5、合成/聚合復用原則:要盡量使用合成/聚合,盡量不要使用繼承
    6、迪米特法則:一個對象應當對其他對象有盡可能少的了解
            1、優先考慮將一個類設置成不變類,例如:String、BigInteger等
            2、盡量降低一個類的訪問權限
            3、謹慎使用Serialiazble
            4、盡量降低成員的訪問權限:設計一個類的方法時,應當首先考慮將其設置為private
            5、取代C struct,使用屬性的getXX和setXX方法
    6、在系統類得繼承等級中,樹葉節點均應當是具體類,而樹枝節點是均應當是抽象類或接口。

文章列表


不含病毒。www.avast.com
全站熱搜
創作者介紹
創作者 大師兄 的頭像
大師兄

IT工程師數位筆記本

大師兄 發表在 痞客邦 留言(0) 人氣()