**:
(2)
關聯關係(association):表示的是類與類之間的聯接,注意這兩個類是屬於同一層次上的。
聚合關係(aggregation):是關聯關係的一種,是強的關聯關係。但與關聯關係不同的是,聚合關係中兩個類是處在不同的層次上的,乙個代表整體,乙個代表部分。關聯與聚合僅從語法上是分辨不出的,需要從邏輯關係上判斷。
組合關係(composition):也是一種關聯關係,比聚合更強的關係,它要求普通聚合關係中代表整體的物件負責代表部分的物件的生命週期。代表整體的物件可以將代表部分的物件傳遞給另乙個物件,但在同一時刻,代表部分的物件只能與乙個物件發生合成關係,並由後者負責它的生命週期。
(3)
aggregate v.s. composite, see uml reference.
是個概念,數學概念,設計層次上的概念;對應到**,則有各種表現,未必劃一的;甚至兩者可以共享同一種記錄結構,只是遵循不同的操作約定而已。
舉一例:
class a ;
class b ;
以上肯定是composite關係。
若class c ;
則既可用於aggregate關係,也可以通過遵循composite約定而用來實現composite關係。
高聚合和低耦合的理解
聚合是模組內部的緊密程度 耦合是模組之間的緊密程度 要求高聚合,低耦合。聚合程度越高,越易修改 耦合程度越低,修改乙個模組,對另外乙個模組的影響越小。參考內聚的各種分類的理解。對於邏輯內聚,比如獲取小時方法gethour 和判斷歡迎語方法getsecondgreeting 放在乙個helloworl...
耦合性和內聚性
初級人員開發過程中,可能會聽到架構人員提及到低耦合高內聚,這些都是什麼意思呢?耦合 就我目前工作開發環境 醫療行業 低耦合可以模擬,你醫院管理系統,醫療物資進貨入庫出庫等行為,應該不影響你的患者 付費等行為,二者不應該也不可發生交際 內聚 物資的進庫,出庫,調撥,消耗等行為之間要高度相關聯。但是實際...
內聚和耦合
內聚 1.偶然內聚 模組的各成分之間沒有關聯,只是把分散的功能合併在一起。例 a模組中有三條語句 一條賦值,一條求和,一條傳參 表面上看不出任何聯絡,但是b c模組中都用到了這三條語句,於是將這三條語句合併成了模組a。模組a中就是偶然內聚。2.邏輯內聚 邏輯上相關的功能被放在同一模組中。例 a模組實...