包的設計原則:
2.穩定性:包的耦合性原則
(1) 無環依賴原則
??? 很好理解,包的依賴關係中不能出現環,否則等著看好戲吧(例如晨後綜合症)
??? 怎麼解除依賴環呢?很簡單!使用dip(依賴倒置)原則
(2) 穩定依賴原則
??? 什麼是穩定性?穩定性和更改所需要的工作量相關,例如豎立的硬幣是不穩定的,
??? 但是桌子是穩定的。若有很多包依賴於包x,那麼x就是穩定的
??? 穩定性度量:i=ce/(ca+ce) ca是輸入耦合度,ce是輸出耦合度
??? 乙個包的i值應該大於它所依賴的包的i值,即i值應該順著依賴的方向減少
??? 在乙個軟體系統中,有些部分不經常改變,它代表著系統的高層架構和設計策略,應該
??? 把這些部分放到最穩定的包中
(3) 穩定抽象原則
??? 包的抽象度應該與穩定度一致
不能自頂向下設計包的結構,包結構是隨著系統的增長,變化而逐步演化的,包之間的關係
和應用程式的功能幾乎沒有關係,他們是應用程式可構建性的對映圖(第一次聽到這種說法
不是很理解)
包的設計原則
敏捷軟體開發 原則,模式和實踐 中包的設計原則 重用發布等價原則 重用的粒度就是發布的粒度 共同封閉原則 包中所有的類對於同一類性質的變化應該是共同封閉的。乙個變化若對乙個報產生影響,則將對包中所有的類產生影響,而對於其他的包不造成任何影響。共同重用原則 乙個包中的所有類應該是共同重用的。如果重用了...
專案設計之 專案包的設計原則
很久之前把幾大名著 敏捷軟體開發 設計模式 大話設計模式 重構 改善既有 的設計 輕量級j2ee企業應用實戰 struts spring hibernate整合開發 等研究了一遍,然後就想做個專案來綜合以上知識,現在把專案設計的思路寫出來。包的設計 最好遵循包設計六大原則。前三增加內聚 1 重用發布...
Python設計模式 2 設計原則
開放 封閉原則 open closed principle 類或者物件及其方法對於擴充套件來說,應該是開放的,但是對於修改來說,應該是封閉的.優點 現有的類不會被修改,因此退化的可能性較小 它還有助於保持以前的 的向後相容性 控制反轉原則 高層級模組不應該依賴於低層級的模組,它們應該都依賴於抽象,細...