設計模式-05 包設計六大原則

包設計原則六大原則

高內聚 - 重用發佈等價原則

重用的力度就是發佈的粒度一個包裡面的類要麼都可重用,要麼都不可重用一個包中所有類對同一使用者而言,都可重用

高內聚 - 共同重用原則

一個包中所有類應該共同重用;如果重用了一個類,那麼就要重用包中的所有類僅僅依賴其中一部分是不可能的;否則需要進行不必要的重新驗證和發佈,費時費力

高內聚 - 共同封閉原則

一個包中所有類對於同一種變化應該是共同封閉的一個修改如果對一個包產生影響,則將會對包所有類產生影響,對於其他包不影響通常,可維護性超過可重用性;如果代碼需要修改,寧願集中在一個包改,而不是多個包改

低耦合 - 無環依賴原則

包的依賴關係圖不允許存在環

解除環方案

使用依賴倒置原則,抽出接口或者抽象類將相互依賴的A包和B包共同依賴的類移到新包N,A包和B包依賴新包N

TIP

不能自頂向下的設計包包的依賴關係結構和系統的邏輯設計一起增長和演化

低耦合 - 穩定依賴原則

可改變的包位於頂部,依賴底部穩定的包

穩定性

穩定性 = 包內依賴包外類的數量 / (包內依賴包外類的數量 + 包外依賴包內類的數量)0意味著很穩定,1意味著極不穩定

低耦合 - 穩定抽象原則

包的抽象程度應該和其穩定程度一致穩定的包應該是抽象的不穩定的應該是具體的

抽象程度

抽象程度 = 包中抽象類數目 / 包所有類數目0意味著包中沒有抽象類