一、类的表示
矩形框第一层表示名称,如果是抽象类,则用斜 体表示
第二层是属性
第三层是方法
+号表示公有,-表示私有,#表示保护
二、接口的表示
三、继承的表示
这个用的还是比较多的
继承用空心三角形和实线表示
四、接口实现的表示
用空心三角形和虚线来表示
用的比较少
五、关联关系
当一个类“知道”另一个类时,可以用关联关系表示,比如企鹅和气候就是这种关系,企鹅需要知道气候,在企鹅类里边可以定义气候。
这个一般在客户端实现那里使用,其余的地方没见过有用这个表示的
关联关系用实线箭头来表示
六、聚合关系
这个用的也还是比较多的。聚合表示弱拥有关系,体现的是A对象可以包含对象B,但B对象不是A对象的一部分。聚合关系用空心菱形+实线箭头来表示。
比如雁群和大雁就是聚合关系,在雁群类中可以定义大雁的数组。
七、合成关系
部分和整体的关系,强拥有关系。比如鸟和翅膀就是这种关系。用实心菱形+实线来表示。
这个用的比较少。
八、依赖关系
这个也用的稍微多一点点吧。
我感觉这个依赖关系模模糊糊的。。。
比如动物依赖于氧气和水的关系就是依赖关系。
然后具体应用的话,一般就是某个类的方法里边返回值或者传递的参数类型是另一个类,一般就可以用依赖关系。
依赖关系用虚线箭头来表示。
区分
关联关系是一种强依赖的关系,假设有两个类,类A和类B,类B作为类A的成员变量存在,类A也可为类B的成员变量存在,如果互为成员变量则为双向依赖,否则为单向依赖。
关联关系与依赖关系的区别在于,依赖关系是一种临时的关系,依赖关系主要体现在方法参数,当调用方法时才有关系,关联关系是一种长期的关系,主体现在成员变量,无论是否调用方法这种关系都存在。
聚合关系是一种has-a关系,假设有两个类,类A和类B,类A包含类B,类B是类A的成员变量,聚合关系和关联关系都体现在成员变量,它们的区别在于:关联关系双方是平级的,是个体和个体的关系,聚合关系双方不是平级的,是整体和部分的关系。