高內(nèi)聚就是說相關(guān)度比較高的部分盡可能的集中接剩,不要分散
低耦合就是說兩個相關(guān)的模塊盡可以能把依賴的部分降低到最小,不要讓兩個系統(tǒng)產(chǎn)生強依賴
可能那么說珊皿,有點官方网缝,下面我就舉例子說明:
所謂的高內(nèi)聚就是把功能相關(guān)的模塊集合在一起,舉例:
? ?用戶模塊蟋定,就可以把用戶的相關(guān)內(nèi)容放在一起粉臊,比如用戶個人信息,用戶一些收藏等驶兜。
? 新聞模塊扼仲,就可以把新聞相關(guān)的內(nèi)容放在一起,比如新聞的一起查看抄淑,新聞的詳情展示等屠凶。
? 如果把新聞相關(guān)的內(nèi)容放到用戶模塊里面,首先新聞相關(guān)得內(nèi)容和用戶模塊沒有多大得關(guān)聯(lián)性蝇狼,這樣得內(nèi)聚就不是高聚合阅畴。
在舉個最實際的例子:211和專科學(xué)校他們招生迅耘,211招的就是高尖子生贱枣,他們得共性就是學(xué)生里面的頂尖的一批监署,專科招的就是學(xué)生里面學(xué)習(xí)能力相對較弱的一批纽哥,如果把屇品Γ科生放到211里面去,那不符合實際春塌,畢竟屜埽科生和211沒有多大的關(guān)聯(lián),符合不了211只壳。從這個招生得這種情況就可以理解為:高內(nèi)聚(把能力內(nèi)容相關(guān)的放在一起)俏拱。
所謂得低耦合就是每個模塊之間的關(guān)聯(lián)性將到可控范圍的最低,舉例:
有個購物車系統(tǒng)和商品是相關(guān)的吼句,當(dāng)加入購物車的時候锅必,勢必需要去執(zhí)行商品相關(guān)的操作,這就是耦合惕艳,那所謂的低耦合搞隐,就是購物車降低對商品這塊的聯(lián)系。
舉個現(xiàn)實中的例子:
你找了一個女朋友远搪,那你們之間就有了聯(lián)系劣纲,這就是耦合,然后呢谁鳍,你們同居了癞季,你們之間聯(lián)系更加密切了,這樣耦合就高了棠耕,然后突然有一天余佛,你女朋友說要回老家了,你倆不同居了窍荧,你們的聯(lián)系呢也少下去了辉巡,但是你倆還是男女朋友關(guān)系,只不過沒有同居的時候聯(lián)系那樣親密蕊退。這就是所謂的:低耦合
高內(nèi)聚郊楣,低耦合,他們是相關(guān)的瓤荔,一旦內(nèi)聚高了净蚤,耦合也必然會高,一旦耦合低了输硝,那內(nèi)聚也必然會降低今瀑。因為內(nèi)聚一旦高了,功能也越來越單一化了,對外模塊的需求也變得高了(例:情況一:你現(xiàn)在只學(xué)習(xí)橘荠,啥都不干屿附,那你吃飯,住宿哥童,衛(wèi)生等等都是需要甲幫你操辦挺份,相對于你而言,你是專一化的學(xué)習(xí)贮懈,啥都不用考慮匀泊,但是你對甲的依賴就很高,這就是內(nèi)聚高了朵你,耦合也就高了各聘。情況二:如果你現(xiàn)在不僅要學(xué)習(xí),而且住宿撬呢,吃飯伦吠,衛(wèi)生都要自己去解決,那相對于甲而言魂拦,他的出現(xiàn)與否和你沒有多大的關(guān)聯(lián),他就真成了路人甲搁嗓,但是對你而言你需要做的東西就多了芯勘,那你的能力也就不在是單一化了,就會有很多能力糅合在你身上腺逛,但是你和甲的關(guān)聯(lián)就很少甚至是幾乎沒有荷愕,這就是所謂的:耦合低了,內(nèi)聚也就低了)因此棍矛,高內(nèi)聚安疗,低耦合是相關(guān)的,我們能做到得就是找到最合適得一個 內(nèi)聚和耦合的一個點够委。因此沒有絕對的高內(nèi)聚低耦合