类与类之间的关系

注意:抽象类也是接口
泛化称为继承

根据类与类之间的耦合度从弱到强排列,
UML 中的类图有以下几种关系:
依赖关系、关联关系、聚合关系、组合关系、泛化关系和实现关系。
其中泛化和实现的耦合度相等,它们是最强的。

类之间的关系:
泛化关系(generalization)–>继承
is-a关系,泛化关系表现为继承非抽象类;

实现关系(realize)
    一个抽象的概念,在现实中并无法直接用来定义对象;
    只有指明具体的子类,才可以用来定义对象
    实现关系表现为继承抽象类;

依赖关系(dependency)
    B类有个局部变量A,B依赖A,B虚线箭头A
    与关联关系不同的是,它是一种临时性的关系(形参,局部变量)只和朋友通信,通常在运行期间产生,并且随着运行时的变化; 依赖关系也可能发生变化;

关联关系(association)-->分为两种(聚合跟组合)
    B类中有A这个属性(成员变量),B关联A,B实心箭头A,(空心菱形或则是实心菱形)一般关联是一条直线
    在最终代码中,关联对象通常是以成员变量的形式实现的;

    聚合关系(aggregation)
        A聚合到B上,B由A组成。B实心箭头A,空心菱形
        聚合关系用于表示实体对象之间的关系,表示整体由部分构成的语义;例如一个部门由多个员工组成;
        一个部门由多个员工组成,那么就是部门由员工组成。部门是整体,员工是部分
        与组合关系不同的是,整体和部分不是强依赖的,即使整体不存在了,部分仍然存在;例如, 部门撤销了,人员不会消失,他们依然存在;

    组合关系(composition)
        A聚合到B上,B由A组成。B实心箭头A,实心菱形
        与聚合关系一样,组合关系同样表示整体由部分构成的语义;比如公司由多个部门组成;
        但组合关系是一种强依赖的特殊聚合关系,如果整体不存在了,则部分也不存在了;例如, 公司不存在了,部门也将不存在了;

你可能感兴趣的:(设计模式,设计模式)