码迷,mamicode.com
首页 > 其他好文 > 详细

UML类图学习

时间:2015-10-19 10:42:50      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:

  学习设计模式的时候每个模式都会有一个UML类图,一般这些类图都还是比较容易看懂的,但是当自己设计UMl类图的时候,就头大了。dependency,composition,aggregation,association有什么区别?还有那些0……*,0……1,1……*都是什么意思?让我们一起来学习一下。所有UML类图都使用PowerDesigner绘制。

一般化、泛化——Generalization

  用在两个类或者两个接口之间就是继承,类和接口之间就是实现,箭头指向被继承或被实现者

技术分享技术分享技术分享

依赖——Dependency

  临时的、偶然的关系,可以为单向或者双向,代码表现为一个类或者接口作为另一个类或接口的参数,箭头指向作为参数的类

  技术分享

关联——Association

  类与类、类与接口之间的持久关系,双方地位平等。可以为单向或者双向,代码表现为被关联项作为关联项的属性,或者被引用项是一个全局变量。箭头指向被引用项

  技术分享

聚合——Aggregation

  类与类、类与接口之间的部分与整体关系,但部分与整体是可分离的,即has-a的关系。例如:家庭——成员之间的关系,部分可以独立于整体生存,部分可以属于多个对象。代码表现和关联一样,只能从语义区分。箭头指向部分

  技术分享

组合——Composition

  也是部分与整体的关系,但是两者不可分离,拥有相同的生命周期,部分不可以独立于整体生存,即contains-a关系。例如:人体——心脏之间的关系。箭头指向部分

  技术分享

其他

  箭头

  技术分享

  关系所表现的强弱程度依次为:组合>聚合>关联>依赖;

  多重性关系

  多重性关联关系又称为重数性(Multiplicity)关联关系,表示两个关联对象在数量上的对应关系。

表示方式
多重性说明
1..1
表示另一个类的一个对象只与该类的一个对象有关系
0..*
表示另一个类的一个对象与该类的零个或多个对象有关系
1..*
表示另一个类的一个对象与该类的一个或多个对象有关系
0..1
表示另一个类的一个对象没有或只与该类的一个对象有关系
m..n
表示另一个类的一个对象与该类最少m,最多n个对象有关系 (m≤n)

  下图表示一个公司拥有1到n个员工,一个人属于0或1个公司

  技术分享

  

UML类图学习

标签:

原文地址:http://www.cnblogs.com/castdream/p/4818515.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!