【设计模式】UML关系图示例
来源:互联网 发布:2017网络棋牌赌博案 编辑:程序博客网 时间:2024/05/22 01:41
UML图例如下:
一、类框表示
- 第1层:类名。
- 第2层:属性(即类的字段)。
- 第3层:操作(类的方法)。+号表示public;-号表示private;#号表示protected。
二、类之间的各种关系
类之间的关系共6种:
- 继承关系
- 接口关系
- 依赖关系
- 关联关系
- 聚合关系
- 组合关系
1、继承关系
用空心三角形+实线表示。
2、实现接口
用空心三角形+虚线表示。
3、依赖关系
用虚线箭头表示。
主类(动物)中的某个方法需要用到某类(氧气、水)作为参数,就是说“主类的某些方法需要依赖到某类”。
4、关联关系
用实线箭头表示。
主类(企鹅)中的某个属性变量(字段)是某类(气候)的一个引用(或者指针),就是说:“主类和某类具有关联性,主类中的某些方法需要用到某类的外部实例,但是某类的外部实例的生命周期和主类没有关系”。
5、聚合关系
用空心菱形+实线箭头表示。
这是一种弱的“拥有”关系。主类是有若干个某类对象实例,并提供了有关某类的对外一致的接口方法。但是某类又不知道主类的存在,并不为主类提供功能性服务。例如:std::vector
,vector和T就是集合关系。
6、合成关系(组合关系)
用实心菱形+实线箭头表示。
这是一种强的“拥有”关系。主类必须拥有一个某类。某类为主类提供必不可少的功能。某类的生存期和主类一致。例如:NetServer类中必须拥有Socket类用来进行网络通信,同样也必须拥有DataSoruce类用来存储数据。
三、关系间的区别
1、聚合和组合关系的区别
- 聚合关系多用于:容器类+元素类,组合关系多用于:一个综合大类+若干个专用小类。
- 聚合关系中,主类可以有0个或者N个相同类型某类,并且可以运行时动态增删。组合关系中,主类一般拥有N个不同类型的某类,和主类同时创建或删除。
- 聚合关系中,某类仅仅是缓存在主类中,并不为主类提供某些功能。组合关系中,某类提供主类必需的功能。
2、关联关系和聚合及组合关系的区别
- 关联关系:主类仅仅用到某类的部分方法。某类可以为全局变量,主类的成员变量指针指向这个全局变量。例如:Allocator类,主类可用全局的Allocator来创建一个子实例。
- 如果某类的生命周期不受主类控制,又为主类提供了某些功能,但主类又不是容器,那么某类就是和主类相关联。
- 【设计模式】UML关系图示例
- 【设计模式系列】UML类图图示样例
- UML类图图示样例---选自《大话设计模式》
- UML关系 图示
- UML关系 图示
- 设计模式------------UML关系
- UML中的用例间关系图示
- 《大话设计模式》备忘笔记-UML类图图示
- uml类图示例
- UML类图示例
- UML类图示例
- UML类图示例
- UML类图示例
- uml类关系图示及示例代码
- UML java 图示6种类关系
- 软件工程 ,UML ,设计模式 简单关系
- 类关系(UML&设计模式)
- 设计模式--UML关系与代码对照
- 静态页面读取程序页数据
- PHp中typedef用法详解
- jQuery live 事件绑定性能测试
- Linux ps命令详解
- 从淘宝网,卓越,凡客看我眼中B2C与C2C的区别
- 【设计模式】UML关系图示例
- 开启和关闭系统输入法
- hdu--2565--打印放大的"X”(每行X后面的空格不能输出,真是无聊)
- SQL2005分区表详解
- Scale-up and Scale-out
- VC:日志文件用法
- Linux下备份oracle数据库shell脚本
- 清空代码防止查看源代码(懒人图库)
- SQL2005分区表详解