其实,对于聚合和组合,如果换成英文,就很好理解了:聚合就是“has-a”,组合就是“contains-a”。 聚合是空心的菱形;组合是实心的菱形(这个比较好理解,实心的肯定比空心的扎实)。 摘录一段话: 聚合和组合的区别在于:聚合关系是“has-a”关系,组合关系 ...
组合和聚合是有很大区别的,这个区别不是在形式上,而是在本质上: 比如A类中包含B类的一个引用b,当A类的一个对象消亡时,b这个引用所指向的对象也同时消亡 没有任何一个引用指向它,成了垃圾对象 ,这种情况叫做组合,反之b所指向的对象还会有另外的引用指向它,这种情况叫聚合。 在实际写代码时组合方式一般会这样写: A类的构造方法里创建B类的对象,也就是说,当A类的一个对象产生时,B类的对象随之产生,当A ...
2017-07-06 14:53 0 1510 推荐指数:
其实,对于聚合和组合,如果换成英文,就很好理解了:聚合就是“has-a”,组合就是“contains-a”。 聚合是空心的菱形;组合是实心的菱形(这个比较好理解,实心的肯定比空心的扎实)。 摘录一段话: 聚合和组合的区别在于:聚合关系是“has-a”关系,组合关系 ...
组合:部分与整体是与生俱来的,部分的存在依赖于整体。比如人与人的某个器官,人一出生,器官就在,人死亡,器官也就没了意义。 组合">关系相对紧密A类的生命期受B类的控制开辟新空间 聚合:你与你的电脑(或者其它物品),电脑是属于你的吧,但是你是一出生就拥有了电脑吗,电脑是某个厂商生产 ...
继承是面向对象编程三大特性之一,通过继承,子类可以继承父类非private的属性和方法,大大提高代码复用性和开发效率。 但继承也有众多缺点, 比如使得子类与父类过度耦合,当父类发生调整会影响 ...
聚合 聚合其实是关联的一个特例,表示了两个对象之间“part of(部分-整体)”的关系,是一种弱关联,部分的生命周期可以超越整体。在UML中,用整体端有空心菱形箭头的双向关联修饰聚合。聚合的示例如下图: 组合 组合其实是一种强形式的聚合,它具有强的拥有关系,整体 ...
在学习面向对象设计对象关系时,依赖、关联、聚合和组合这四种关系之间区别比较容易混淆。特别是后三种,仅仅是在语义上有所区别,所谓语义就是指上下文环境、特定情景等。 依赖(Dependency)关系是类与类之间的联接。依赖关系表示一个类依赖于另一个类的定义。例如,一个人(Person)可以买车(car ...
继承 指的是一个类或者接口继承另一个类或者接口,而且可以增加自己的新功能。 实现 指的是一个class类实现interface接口。 依赖 简单说,就是一个类中的方法用到了另一个类,一般依赖关系在java中提现为局部变量、方法的形参,或者对静态方法的调用。是一种弱关系 ...
在学习面向对象设计对象关系时,依赖、关联、聚合和组合这四种关系之间区别比较容易混淆。特别是后三种,仅仅是在语义上有所区别,所谓语义就是指上下文环境、特定情景等。 依赖(Dependency)关系: 是类与类之间的联接。依赖关系表示一个类依赖于另一个类的定义。例如,一个人 ...
继承:他是is-a的关系,指一个类继承另外一个类的功能 例如:public class A extends B { } 聚合:他是has-a 例如:public class A{ List<B> b} A可以有b 组合:他是contans-a(强聚合 ...