1.為什麼高內聚低耦合?
為了降低複雜度。如何去降低?首先看低內聚,高耦合是什麼樣的。
1.低內聚
乙個低內聚的模組,會存在一些職責之間沒有關聯的方法。它內部的每個職責都會有對應的使用者模組。當這個模組內部某個職責發生改變的時候,其他與這個職責不相關的使用者模組因為也依賴於它,因此也就需要重新測試來驗證是否自己的業務受到這個職責的修改而發生改變。編譯型語言,例如:c++,那麼還意味著要重新編譯、發布這些使用者模組,即便這個改變和這些使用者模組沒有關係。
2.高耦合
當乙個模組大量依賴於其他的模組時,當乙個被依賴的模組發生改變,這個模組就會受到影響,雖然他自己可能沒有什麼變化。編譯型語言,則意味著只要它所依賴的模組發生改變,它也就得重新編譯、發布、部署。
由此可見,低內聚、高耦合帶給我們的是諸多的不穩定性,因此我們需要高內聚、低耦合。
2.高內聚低耦合是否意味著「內聚越高越好,耦合越低越好」?
答案是否定的。內聚與耦合相互之間是衝突的,它們的關係就像乙個天平,一邊高了,另一邊必然就低了,不可能同時上公升。我們必須根據實際的業務需求,來做乙個權衡,使他們處在相對平衡的階段。
高內聚,低耦合
大家都在說高內聚,低耦合。問題是什麼是高內聚?什麼是低耦合?那它們的作用是什麼?先來談談什麼是耦合,耦合就是不同模組之間粘稠的程度。耦合度高證明你的模組之間粘稠,不好剝離模組功能。造成後續修改難度加大,所謂 動一發而牽全身 當你的 粘稠在一起的時候,就代表你的 需要重寫了。那麼避免這些個事情的發生,...
高內聚,低耦合
內聚,更為專業的說法叫功能內聚,是對軟體系統中元素職責相關性和集中度的度量。如果元素具有高度相關的職責,除了這些職責內的任務,沒有其它過多的工作,那麼該元素就具有高內聚性,反之則為低內聚性。其實結合oop的思想,高內聚應該是更加趨向於介面化,工廠模式可以很容易體現這種思想。即方法呼叫,只要通過相應的...
高內聚低耦合
明確一點,乙個程式如果是高內聚零耦合會是最完美的,但是沒有絕對的零耦合。也就不存在什麼完美的程式了。1 什麼是高內聚 低耦合?首先了解什麼是內聚 耦合 1.1.1內聚性 每乙個程式中可能會按照不同功能,將整個 段劃分為不同的模組,每乙個模組內部元素彼此之間會有某些聯絡,此種聯絡就是內聚性。同乙個模組...