1. 程式人生 > >四、高內聚低耦合

四、高內聚低耦合

什麽 耦合 pos 內聚 同時 class 是否 改變 根據

1.為什麽高內聚低耦合?

為了降低復雜度。如何去降低?首先看低內聚,高耦合是什麽樣的。

1.低內聚

一個低內聚的模塊,會存在一些職責之間沒有關聯的方法。它內部的每個職責都會有對應的使用者模塊。當這個模塊內部某個職責發生改變的時候,其他與這個職責不相關的使用者模塊因為也依賴於它,因此也就需要重新測試來驗證是否自己的業務受到這個職責的修改而發生改變。編譯型語言,例如:C++,那麽還意味著要重新編譯、發布這些使用者模塊,即便這個改變和這些使用者模塊沒有關系。

2.高耦合

當一個模塊大量依賴於其他的模塊時,當一個被依賴的模塊發生改變,這個模塊就會受到影響,雖然他自己可能沒有什麽變化。編譯型語言,則意味著只要它所依賴的模塊發生改變,它也就得重新編譯、發布、部署。

由此可見,低內聚、高耦合帶給我們的是諸多的不穩定性,因此我們需要高內聚、低耦合。

2.高內聚低耦合是否意味著“內聚越高越好,耦合越低越好”?

答案是否定的。內聚與耦合相互之間是沖突的,它們的關系就像一個天平,一邊高了,另一邊必然就低了,不可能同時上升。我們必須根據實際的業務需求,來做一個權衡,使他們處在相對平衡的階段。

四、高內聚低耦合