單一職責原則
類的功能要單一。
開閉原則
在盡量不修改源**前提下擴充套件
黎克特制代換原則
父類引用的地方也能用子類。就是說盡量不要覆蓋父類的方法
依賴倒轉原則
要針對介面程式設計,而不是針對實現程式設計。
介面隔離原則
介面設計要專一,不需要多餘的方法實現
合成復用原則
少用繼承,多用依賴關聯等
迪公尺特法則
乙個類的改變最少的影響別的類的運轉。
衡量物件導向的的優劣就是高耦合低內聚。耦合性就是類和類之間的關聯程度。關聯程度越高,耦合性越高。內聚性和和耦合性相反,關聯程度越高,內聚程度越低
unified modeling language (uml)又稱統一建模語言或標準建模語言.我們可以用他來描述物件和集合的關係。
uml 用類圖(class diagram)表示類。
乙個類圖屬性和方法描述乙個類。
接著我們按照耦合性從高到低來描述類和類之間的關係
對應介面實現
對應繼承關係,表示is-a的關係。
對應類的屬性。 表示contains-a的關係,是一種特殊的關聯
對應類的屬性。 表示has-a的關係的關係。是一種特殊的關聯
組合和聚合很像,主要區別在於關聯物件是否脫離物件能單獨存在。例如汽車類和輪子類。如果輪子類是具體的輪子類,我們可以理解為是聚合關係。因為沒有汽車類,輪子可以單獨滾動(即可以單獨存在)。但是如果輪子類是乙個抽象類,就是組合關係了,因為抽象輪子類是無法單獨存在的。
通常使用類的屬性表達。下面為雙向關聯。除了組合和聚合意外的關聯我們稱為一般關聯
組合和聚合是一種包含關係,而我們的一般關聯只是一種簡單的引用而已。如我們不能說mother包含son或者son 包含mother。但是我們的mother 可能都會有乙個son。每一son 也可能由一位mother。
依賴(dependency):物件之間最弱的一種關聯方式,是臨時性的關聯。**中一般指由區域性變數、函式引數、返回值建立的對於其他物件的呼叫關係。
物件導向設計原則和設計模式
誰來建立另乙個類的示例?對於類a和類b,滿足下列條件 1.b包含a 2.b記錄a 3.b和a關係很密切 4.b擁有a例項化所必需的示例 則應該由b來建立a的例項,其中1 2優先 為乙個物件分配職責的一般原則是什麼?誰具有完成一件事情所必須的資訊,就把職責分配給它 步驟 1.把職責描述清楚 2.設計模...
物件導向設計原則
oo原則 封裝變化 多用組合,少用繼承 針對介面程式設計,不針對實現程式設計 為互動物件之間的松耦合而努力 類應該對擴充套件開放,對修改關閉 依賴抽象,不要依賴具體類 只和朋友交談 別找我,我會找你 類應該只有乙個改變的理由 從設計原則到設計模式 針對介面程式設計,而不是針對實現程式設計 客戶無需知...
物件導向設計原則
物件設計原則 物件導向設計原則 物件導向設計的基石是 開 閉 原則。開一閉 原則講的是 乙個軟體實體應當對擴充套件開放,對修改關閉。這個規則說的是,在設計乙個模組的時候,應當使這個模組可以在不被修改的前提下被擴充套件。從另外乙個角度講,就是所謂的 對可變性封裝原則 對可變性封裝原則 意味著兩點 1 ...