依赖 关联 聚合 组合
来源:互联网 发布:网络语数字 编辑:程序博客网 时间:2024/05/04 20:08
参考 :blog
依赖关系 : 在Java语言中体现为局域变量、方法的形参,或者对静态方法的调用。
class Driver { //使用形参方式发生依赖关系 public void drive1(Car car){ car.run(); } //使用局部变量发生依赖关系 public void drive2(){ Car car = new Car(); car.run(); } //使用静态变量发生依赖关系 public void drive3(){ Car.run(); } }
关联 ,聚合 ,组合 ,耦合度逐渐增加!都是关联关系!
以司机和车的关系为例:
关联 :“车不是我的,我只是个司机,别人给我什么车我就开什么车,我使用这个车。”
它使一个类知道另一个类的属性和方法。例如如果A依赖于B,则B体现为A的全局变量。如person类和company类
class Driver { //使用成员变量形式实现关联 Car mycar; public void drive(){ mycar.run(); } ... //使用方法参数形式实现关联 public void drive(Car car){ car.run(); } }
聚合: 一般使用成员变量形式实现,一般使用setter方法给成员变量赋值“车是一辆私家车,是司机财产的一部分”车的生命周期与司机无关
聚合关系是整体和个体的关系 ,普通关联关系的两个类处于同一层次上,而聚合关系的两个类处于不同的层次,一个是整体,一个是部分
class Driver { //使用成员变量形式实现聚合关系 Car mycar; public void drive(){ mycar.run(); } }
组合 : "车是司机的必须有的财产,要想成为一个司机必须要先有辆车,车要是没了,司机也不想活了。而且司机要是不干司机了,这个车就砸了,别人谁也别想用" ------ 相互依赖,而前面两种还构不成这么强的耦合 , 一般通过构造方法给成员变量赋值!
public Driver(Car car){ mycar = car; }
关联、聚合、组合只能配合语义,结合上下文才能够判断出来,而只给出一段代码让我们判断是关联,聚合,还是组合关系,则是无法判断的。
0 0
- 依赖,关联,聚合,组合
- 依赖,关联,组合, 聚合
- 关联--依赖、组合--聚合
- 依赖,关联,聚合,组合
- 依赖-关联-聚合-组合
- 依赖 关联 聚合 组合
- 依赖、关联、聚合、组合
- 组合-聚合,关联-依赖
- 依赖、关联、聚合、组合区别
- 依赖、关联、聚合、组合区别
- 依赖 关联 聚合 组合 泛化
- 泛化、依赖、关联、聚合、组合
- UML 依赖 关联 聚合 组合
- UML 依赖 关联 聚合 组合
- 依赖,关联,聚合和组合
- 泛化、依赖、关联、聚合、组合
- c++组合 聚合 关联 依赖
- 泛化、依赖、关联、聚合、组合
- oracle spfile 文件不要随便修改
- Oracle 默认日期格式修改
- MyEclipse Hibernate反向工程生成实体类
- 奇葩的OBJ-C ~ 1 父类的类方法可以用来新建一个子类的对象 -- 使用关键字self
- Validate Binary Search Tree
- 依赖 关联 聚合 组合
- oracle date 比较
- Java程序员到架构师的推荐阅读书籍
- House Robber
- Android—开发自学历程(1)-Activity(5)-ListView
- ipv4 子网掩码 及 分类编址
- STL--map学习
- BeanUtil工具包的使用
- svn 初学 的一些问题