關聯、聚合、組合

關聯、聚合(Aggregation)以及組合(Composition)的區別?<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

涉及到UML中的一些概念:關聯是表示兩個類的一般性聯繫,比如學生老師就是一種關聯關係;聚合表示has-a的關係,是一種相對鬆散的關係,聚合類不需要對被聚合類負責,如下圖所示,用空的菱形表示聚合關係:

                           <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

從實現的角度講,聚合可以表示爲:

class A {...}  class B { A* a; .....}

組合表示contains-a的關係,關聯性強於聚合:組合類與被組合類有相同的生命週期,組合類要對被組合類負責,採用實心的菱形表示組合關係:

                           

實現的形式是:

class A{...} class B{ A a; ...}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章