类间的关系:http://www.open-open.com/lib/view/open1328059700311.html
泛化 、 实现 、 关联 、 组合 、 聚合 、 依赖
- 泛化是继承类,实现是实现接口
- 关联 、 组合 、 聚合都体现了对象的对应关系,也就是某些对象只和另外一些对象有关系,且这些关联一般不发生变化;
- 而依赖是某个对象和某类型的对象有关系,但具体关联的对象可能发生变化。
- 关联仅仅强调对象之间存在关系,组合在其基础上强调了没有子级对象父级对象是不完整的,聚合在组合基础上强调了子级对象不能脱离父级对象存在。
- 因此如果子级对象不能脱离父级对象则用聚合,
- 如果子级对象可以脱离父级对象但父级对象不能没有子级对象用组合,
- 如果两个对象之间有依存关系但是又都可以独立存在则用关联,
- 如果仅是方法调用时需要某个对象参与则用依赖。