1、关联:类之间的一种关系,如学生和老师。
代码中的表示:
class Student{ private Teacher mTeacher; } class Teacher{ }
2、双向关联:和关联一样,不过它是两个方向的,如学生和老师,老师和学生,双向关系。
代码中表示:
class Student{ private Teacher mTeacher; } clsass Teacher{ private Student mStuent; }
3、聚合:整体和部分的关系,has-a的关系,如汽车拥有引擎。通常是通过构造函数或者setter赋值进去的。
代码中表示:
class Car{ private Engine mEngine; public void setEngine(Engine e){ mEngine = e; } }
4、组合:整体和部分的关系,is-a的关系,如手是人体的一分部。通常是在构造函数的时候,通过new创建出来。
代码中的表示:
class People{ private Hand mHand; public People(){ mHand = new Hand(); } }
5、依赖:是使用的关系,例如汽车使用喇叭来鸣笛,调用汽车鸣笛的方法时,就依赖于喇叭鸣笛方法。
代码中表示:
class Car{ private Horn mHorn; public void whistle(){ mHorn.whistle(); }
6、继承:不解释。
7、实现接口:不解释。
小结:
1、继承已实现的类图,箭头是三角形的,其他的是不闭合的箭头。
2、关联与聚合在代码中的表示,都类似。主要是构建模型的时候,理解上的差别。
原文:https://www.cnblogs.com/47Gamer/p/14327569.html