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

包設計原則六大原則

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

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

高內聚 - 共同重用原則

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

高內聚 - 共同封閉原則

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

低耦合 - 無環依賴原則

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

解除環方案

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

TIP

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

低耦合 - 穩定依賴原則

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

穩定性

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

低耦合 - 穩定抽象原則

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

抽象程度

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


分享到:


相關文章: