类的关系

继承

UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子接口指向父接口。

1648799-20190406185633808-1629180947.png

实现

在UML类图设计中,实现用一条带空心三角箭头的虚线表示,从类指向实现的接口。

1648799-20190406185639643-770426402.png

依赖

简单的理解,依赖就是一个类A使用到了另一个类B

这种使用关系是偶然的、临时性的、非常弱的

类B的变化会影响到类A

代码层面,表现为类B作为参数被类A在某个method方法中使用

UML类图设计中,依赖关系用由类A指向类B的带箭头虚线表示

1648799-20190406185646791-500644923.png

class A {
    public void method(依赖B b) {
    }
}
class 依赖B {
}

关联

关联是语义级别的一种强依赖关系。

关联可以是单向、双向的。

表现在代码层面,为被关联类B以类的属性形式出现在关联类A中。

UML类图设计中,关联关系用由关联类A指向被关联类B的带箭头实线表示,在关联的两端可以标注关联双方的角色和多重性标记。

1648799-20190406185653057-1034733485.png

class A {
    private 关联B myVar;
    public 关联B getMyVar() {
        return myVar;
    }
    public void setMyVar(关联B myVar) {
        this.myVar = myVar;
    }
}
class 关联B {
}

组合(合成)

组合是关联关系的一种特例。
体现的是一种contains-a的关系。
也称为“强聚合”
表现在代码层面,和关联关系是一致的,只能从语义级别来区分。
UML类图设计中,组合关系以“实心菱形加实线”箭头表示。

组合示例:人由大脑、心脏等组成。

1648799-20190406185708962-1945972516.png

聚合

聚合是关联关系的一种特例。
是整体与部分的关系,即has-a的关系。
表现在代码层面,和关联关系是一致的,只能从语义级别来区分。
UML类图设计中,聚合关系以空心菱形加实线箭头表示。

聚合示例:孩子和家庭;人和人群。

1648799-20190406185713900-1517786764.png

class A {
    public void method(依赖 _依赖) {
    }
    private 关联 _强依赖;
    private 组合 _关联的特例_contains_a;
    private 聚合 _关联的特例_has_a;
    // getters/setters 略
}
class 依赖 {
}
class 关联 {
}
class 组合 {
}
class 聚合 {
}

转载于:https://www.cnblogs.com/tigerlion/p/10662567.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值