3 Java对象之间的关系
注:UML类图的一些约定,比较复杂。需要掌握,才方便沟通。
3.1 Dependency-依赖
3.2 Association-关联
某个对象会长期的持有另一个对象的引用
3.3 依赖与关联的区别
- MVC模式中,service与dao是哪种关系?关联,还是依赖?
答:关联关系!一般一个service,会注入一个或多个dao;service并不直接操作数据库,所有实现,都是调用dao的方法。这些dao都是service的属性
- dao与model呢?
答:依赖关系。dao中,并不存在model的属性,事实上,一个dao可以使用泛型T,为所有model服务,示例代码,如下:
@Override
public <T> Serializable save(T o) {
if (o != null) {
return getCurrentSession().save(o);
}
return null;
}
区别在于,只是作为工具(参数),而不是属性,那么就是依赖关系;作为属性,长期持有,就是关联关系
3.4 Aggregation-聚合
3.5 Composition-组合
3.6 组合与聚合的区别
比如,手、笔、人,
组合:手&人
聚合:笔&人
3.7 Extends-继承