回顾UML-关系

熟练运用UML是今年给自己在技术上的一个目标--希望达到的目标是在讨论任何技术业务问题时,第一时间想到、用到UML的方式和大家沟通和交流。

以前有过学习UML的经历,也在项目中断断续续采用一些,可能是现在用的越来越少,很多符号都变得越来越生疏,或许本来就没有学好,看到一些牛人随时使用UML的方式进行沟通,还是挺羡慕的。与其说回顾,不如说重新学习来的更加实际些。

静态视图的类就不再学习了,从关系开始吧...

 

对于UML的关系很多地方都定义四类关系:依赖、泛化、关联、实现。有些地方可能会更多些,于是去参考了权威之作《UML参考手册》。先附张官方的图看看

 

  • 关联(association): 系统中对象或实例之间的离散连接。这次放弃使用rose,改用ArgoUML来画UML图

 

public class App {
    public AppCategory myAppCategory;
}

public class AppCategory {
  public Vector  myApp;
}

关联中有两种特殊的关联是聚合(Aggregation)合成(Composition)

区别
聚合合成
含义has-acontains-a
整体与部分关系 比较弱(弱关联) (强关联)
生存关系

部分事物的对象与代表聚合事物的对象的生存期无关,

一旦删除了聚合对象不一定就删除了 代表部分事物的对象

一旦删除了组合对象,

同时也就删除了代表部分事物的对象

 

???关联类

  • 依赖(Dependency ):是一种使用关系,说明一个事物使用另一个事物的信息和服务。只有在使用时,他们才存在关系。例如生产零件的机器和零件,机器负责构造零件对象。再例如充电电池和充电器,充电电池通过充电器来充电。再例如自行车Bicycle和打气筒Pump,自行车通过打气筒来充气。下图为Bicycle类与Pump类的类框图。

public class Bicycle {
  private void expand(Pump pump) {
        pump.blow();
  }
}

public class Pump {
  public void blow() {}
}
  • 泛化(generalization) :is-a-kind-of ,一般事物和较为特殊事物的的种类之间的关系,在Java中描述为“extends”。
  • 实现(realization ): 描述接口和实现类或构件之间的关系。Java中描述为"Implement"。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值