Posted on 2007-04-08 16:55
久城 閱讀(36978)
評(píng)論(14) 編輯 收藏 所屬分類(lèi):
軟件工程
內(nèi)聚:一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度
耦合:一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量
最近編碼的時(shí)候,總是在猶豫是把某個(gè)方法封裝在一個(gè)類(lèi)里,還是單獨(dú)的封裝成一個(gè)類(lèi)。這讓我突然想起內(nèi)聚耦合這兩個(gè)名詞。
我們一直追求著,高內(nèi)聚,低耦合。
對(duì)于低耦合,我粗淺的理解是:
一個(gè)完整的系統(tǒng),模塊與模塊之間,盡可能的使其獨(dú)立存在。
也就是說(shuō),讓每個(gè)模塊,盡可能的獨(dú)立完成某個(gè)特定的子功能。
模塊與模塊之間的接口,盡量的少而簡(jiǎn)單。
如果某兩個(gè)模塊間的關(guān)系比較復(fù)雜的話(huà),最好首先考慮進(jìn)一步的模塊劃分。
這樣有利于修改和組合。
對(duì)于高內(nèi)聚,我粗淺的理解是:
在一個(gè)模塊內(nèi),讓每個(gè)元素之間都盡可能的緊密相連。
也就是充分利用每一個(gè)元素的功能,各施所能,以最終實(shí)現(xiàn)某個(gè)功能。
如果某個(gè)元素與該模塊的關(guān)系比較疏松的話(huà),可能該模塊的結(jié)構(gòu)還不夠完善,或者是該元素是多余的。
內(nèi)聚和耦合,包含了橫向和縱向的關(guān)系。功能內(nèi)聚和數(shù)據(jù)耦合,是我們需要達(dá)成的目標(biāo)。橫向的內(nèi)聚和耦合,通常體現(xiàn)在系統(tǒng)的各個(gè)模塊、類(lèi)之間的關(guān)系,而縱向的耦合,體現(xiàn)在系統(tǒng)的各個(gè)層次之間的關(guān)系。
對(duì)于我在編碼中的困惑,我是這樣想的,用面向?qū)ο蟮乃枷肴タ紤]一個(gè)類(lèi)的封裝。
一個(gè)方法,如何封裝,拿到現(xiàn)實(shí)生活中來(lái)看,看這種能力(方法)是否是屬于這類(lèi)事物(類(lèi))的本能。
如果是,就封裝在這個(gè)類(lèi)里。
如果不是,則考慮封裝在其它類(lèi)里。
如果這種能力,很多事物都具有,則一定要封裝在這類(lèi)事物的總類(lèi)里。
如果這種能力,很多事物都會(huì)經(jīng)常用到,則可以封裝成一個(gè)總類(lèi)的靜態(tài)方法。
歡迎來(lái)訪(fǎng)!^.^!
本BLOG僅用于個(gè)人學(xué)習(xí)交流!
目的在于記錄個(gè)人成長(zhǎng).
所有文字均屬于個(gè)人理解.
如有錯(cuò)誤,望多多指教!不勝感激!