UML 四种关系

依赖(Dependency)

  • 表示一个类使用另一个类,是四种关系中最弱的一种关系。
  • 依赖关系是单向的。
  • 例如动物依赖水,汽车依赖汽油等
    这里写图片描述
  • 具体代码有三种形式(被依赖的类作为局部变量)
    • water是公共的类,animal可以调用其静态方法
    • water是animal中的方法中的变量
    • water是animal函数的参数或者返回值

关联(Association)

  • 表示一个类拥有另一个类,关系相对依赖来说大大增强
  • 分为聚合和组合,例如雁群和大雁(聚合),大雁和翅膀(组合)
    聚合示例类图:
    这里写图片描述
    组合示例类图:
    这里写图片描述

  • 这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的、关联可以使单向、双向的

  • 具体代码表现为被关联类作为一个全局变量或属性
//聚合,部分变量生命周期可以超过整体变量的声明周期
class WirdGooseAggregate
{
    private WideGoose widegoose;         //成员变量定义大雁
    public SetWideGoose (WideGoose w)    //通过传参得到大雁的对象
    {
        this.widegoose = w;              
    }
}
//组合,部分变量生命周期不能超过总体变量生命周期
class Bird
{
    private Wing wing;         //成员变量定义翅膀
    public Bird ()             //构造函数中实例化翅膀对象
    {
        wing = new Wing();             
    }
}

泛化(generalization)

  • 是一个类(称为子类、子接口)继承另一个的类(称为父类、父接口)的功能,并增加它的新功能的能力
  • 继承是类与类或者接口与接口之间最常见的关系
  • 是一个父子关系,两个类之间的关系非常强
  • 例如鲨鱼继承鱼,麻雀继承鸟
    这里写图片描述
  • 代码上表现为继承,在java中使用externs关键字

实现(realization)

  • 是一个class类实现interface接口(可以是多个)的功能(是类与接口的关系)
  • 是一种最常见的关系,设计时鼓励使用
  • 接口可以说是对一种功能的抽象,比如有这么两个接口:飞翔、捕食,一个鸟类可以实现这两个接口,实现以后就具有这两个接口所具有的两个功能。‘’
  • 在uml中的体现
    这里写图片描述
  • 在java代码中使用关键字implements表示
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值