物件導向設計原則--《敏捷軟體開發》
摘抄自《敏捷軟體開發-原則、方法與實踐》-robert c. martin
(1)srp 單一職責原則
就乙個類而言,應該僅有乙個引起它變化的原因。
職責即為"變化的原因".
(2)ocp 開放封閉原則
軟體實體(類、模組、函式等)應該是可以擴充套件的,但是不可修改。
對於擴充套件是開放的,對於更改是封閉的.
關鍵是抽象.將乙個功能的通用部分和實現細節部分清晰的分離開來.
開發人員應該僅僅對程式中呈現出頻繁變化的那些部分作出抽象.拒絕不成熟的抽象和抽象本身一樣重要.
(3)lsp liskov替換原則
子型別必須能替換掉他們的基本型別
(4)dip 依賴倒置原則
抽象不應該依賴於細節。細節應該依賴於抽象。
hollywood原則: "don't call us, we'll call you".程式中所有的依賴關係都應該終止於抽象類和介面。針對介面而非實現程式設計。
任何變數都不應該持有乙個指向具體類的指標或引用。
任何類都不應該從具體類派生。
任何方法都不應該覆寫他的任何基類中的已經實現了的方法。
(5)isp 介面隔離原則
不應該強迫客戶依賴於他們不用的方法。介面屬於客戶,不屬於他所在的類層次結構。
多個面向特定使用者的介面勝於乙個通用介面。
(6)rep 重用發布等價原則
重用的粒度就是發布的粒度.
(7)ccp 共同重用原則
乙個包中的所有類應該是共同重用的。如果重用了包中的乙個類,那麼就要重用包中的所有類。
相互之間沒有緊密聯絡的類不應該在同乙個包中。
(8)crp 共同封閉原則
包中的所有類對於同一類性質的變化應該是共同封閉的。乙個變化若對乙個包影響,則將對包中的所有類產生影響,而對其他的包不造成任何影響.
(9)adp 無依賴原則
在包的依賴關係中不允許存在環.
細節不應該被依賴.
(10)sdp 穩定依賴原則
朝著穩定的方向進行依賴.
應該把封裝系統高層設計的軟體(比如抽象類)放進穩定的包中,不穩定的包中應該只包含那些很可能會改變的軟體(比如具體類)。
(11)sap 穩定抽象原則
包的抽象程度應該和其他穩定程度一致.
乙個穩定的包應該也是抽象的,乙個不穩定的包應該是抽象的.
(12)dap(default abstraction principle)預設抽象原則
在介面和實現介面的類之間引入乙個抽象類,這個類實現了介面的大部分操作.
(13)idp(inte***ce design principle)介面設計原則
規劃乙個介面而不是實現乙個介面。
(14)bbp(black box principle)黑盒原則
多用類的聚合,少用類的繼承。
(15)dcsp(don't concrete supperclass principle)不要構造具體的超類原則
避免維護具體的超類。
自學物件導向
物件導向程式設計 oop,object 物件 oriented 面向 programming 程式設計 是將現實世界中的概念模擬到電腦程式中,它將現實世界中的所有事物視為物件。萬物皆物件 類為產品的藍圖,物件為乙個產品。blueprint manufacture new blueprint 例如一輛...
Python物件導向自學(一)
1.定義乙個類 class demo 表示繼承時有括號 pass這樣就簡單定義出乙個類 2.根據類例項化乙個物件 class demo 表示繼承時有括號 pass one demo one就是根據demo這個類建立出來的乙個物件3.增加訪問屬性 一 直接通過物件動態新增 class demo 表示繼...
Kotlin自學日記之物件導向
物件 類 繼承 封裝 多型 物件的含義是指具體的某乙個事物,即在現實生活中能夠看得見摸得著的事物。在物件導向程式設計中,物件所指的是計算機系統中的某乙個成分。在物件導向程式設計中,物件包含兩個含義,其中乙個是資料,另外乙個是動作。物件則是資料和動作的結合體。物件不僅能夠進行操作,同時還能夠及時記錄下...