总结UML中的五个关系

时间:2021-09-02 19:06:47

is a 关系,那么它是一个集成关系;比如:我 is a 人;再比如菱形、圆形和方形都是形状的一种,那么他们都应该从形状类继承而不是聚合。

has a关系,那么它是一个聚合关系;比如:我 has a 头;再比如电脑是由显示器、CPU、硬盘等组成的,那么你应该把显示器、CPU、硬盘这些类聚合成电脑类,而不是从电脑类继承。

聚合和组合都属于关联,很难区分,但是只要记住一点,区分它们就容易多了:

       处于聚合关系的两个类生命周期不同步,则是聚合关系;处于组合关系的两个类的生命周期同步;eg聚合关系,A创建的时候,B不一定创建;当A消亡时,B不一定消亡。class A{   private  B;}class B{....}组合关系,当创建一个A对象时,也会创建一个B对象;当A对象消亡时,作为A的属性的B对象也会消亡。class A{private B b=new B();....}class B{....}