(原創) association,aggregation,composition有什麼差別? (OO) (UML) (C/C++)
2007-02-20 16:30
513 查看
class之間有三種關係,inheritance,implementation和association。inheritance和implementation在C++、C#、Java都有直接支援,所以不難懂,但association,aggregation和composition在語言並沒有知接支援,到底三者有什麼差別呢?
首先看association,下圖是個典型的assoication class diagram。
class A class Node class Car public:
3 virtual ~Car() private:
5 Carburetor* itsCarb
6};
由以上程式可知,composition須由destructor去處理,而aggregation則不必。
在C#、Java這類有garbage collection的語言,composition幾乎不會用到,但在C++,只要用到pointer,就得自己去delete,所以在composition對於C++就很重要。
Reference
http://www.visualcase.com/kbase/associations.htm
http://ootips.org/uml-hasa.html
http://www.tomjewett.com/dbdesign/dbdesign.php?page=aggregate.php
UML for Java Programmer中文版 p.3-11 ~ p.3-13
UML Distilled 2nd中文版
首先看association,下圖是個典型的assoication class diagram。
class A class Node class Car public:
3 virtual ~Car() private:
5 Carburetor* itsCarb
6};
由以上程式可知,composition須由destructor去處理,而aggregation則不必。
在C#、Java這類有garbage collection的語言,composition幾乎不會用到,但在C++,只要用到pointer,就得自己去delete,所以在composition對於C++就很重要。
Reference
http://www.visualcase.com/kbase/associations.htm
http://ootips.org/uml-hasa.html
http://www.tomjewett.com/dbdesign/dbdesign.php?page=aggregate.php
UML for Java Programmer中文版 p.3-11 ~ p.3-13
UML Distilled 2nd中文版
相关文章推荐
- UML中Association(关联), Aggregation(聚合), Composition(组合)和Dependency(依赖)辨析
- UML中关联(Association)、聚合(Aggregation)和合成(Composition)之间的区别
- association,aggregation,composition有什麼差別?
- UML中关联(Association)、聚合(Aggregation)和合成(Composition)之间的区别
- UML中关联(Association)、聚合(Aggregation)和合成(Composition)之间的区别
- UML的关联(Association), 聚合(Aggregation), 组合(Composition)区别
- UML中关联(Association)、聚合(Aggregation)和合成(Composition)之间的区别
- Difference between Association, Composition and Aggregation in Java, UML and Object Oriented Program
- UML中类之间的几种关系,关联(association),聚合(Aggregation),组合(Composition)
- UML的关联(Association), 聚合(Aggregation), 组合(Composition)区别
- UML中聚集(Aggregation)与组合(Composition)的区别[转]
- (原創) UML對程式設計師也很重要喔!! (OO) (UML) (日記)
- [转]association,aggregation, composition 区别
- Association, Aggregation and Composition
- Association, Aggregation, Composition, Abstraction, Generalization, Realization, Dependency
- UML中聚集(Aggregation)与组合(Composition)的区别
- uml aggregation 与 composition 的区别
- 面向对象编程中Association、Aggregation和Composition的区别
- ODX - Aggregation, Composition, Association
- UML中聚集(Aggregation)与组合(Composition)的区别