UML笔记

内容源于《大话设计模式》。

 

类图:

类图分三层,第一层显示类的名称,如果是抽象类,则用斜体显示。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法或行为。方法前面一般有符号,‘+’表示public,‘-’表示private,‘#’表示protected。

接口图:

继承关系:

空心三角形+实线。

实线接口:

空心三角形 + 虚线

关联:

当一个类需要知道另一个类时,可以用关联。实线箭头。

例如企鹅需要知道气候的变化。

聚合:

聚合表示一种弱拥有关系,对象A包含对象B,但对象A消失后,不会对B产生影响。

例如雁群与大雁,大雁是雁群的一部分,但雁群分散后,大雁不会死。

再比如你有一辆车,你那啥了,车还在。

另一个问题是,可以看到聚合和前面的关联的表现形式非常相似。实际上写法上没有任何区别,主要区别还是在意义上,关联主要表示的是一种平等关系,比如你和你的朋友,但聚合相对强调一种上下级包含关系,是不平等的。

组合:

组合表示一种强拥有关系。

例如,鸟和翅膀,鸟没了,翅膀也不能单独存在了。

再比如,车和车轮,车没了,车轮也不能单独存在。

组合关系连线两端还有数字,表示这一端的类可以有几个实例。

在这个例子中表示一个鸟可以有两个翅膀。

实际上前面两个,关联和聚合也可以标上这样的表示。其中“0..*”表示任意个(包括0),“1..*”表示至少一个。

用专业一点的术语来描述组合和聚合的区别,主要就是变量生命周期不同,组合中,被包含对象(车轮)是在包含对象(车)中的一个属性,然后构造出来的,当包含对象(车)被析构时,被包含对象(车轮)也会被析构掉。而聚合则不这样,被包含对象是采用一次赋值操作(人.车 = 车),所以当包含对象(人)被析构时,车仍单独存在。

依赖关系:

一般是不在作用域的变量引用,例如下面的示例代码,氧气和谁不是动物的特性,但通过类方法传递过来可使用。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值