[首页]
[文章]
[教程]
首页
Web开发
Windows开发
编程语言
数据库技术
移动平台
系统服务
微信
设计
布布扣
其他
数据分析
首页
>
其他
> 详细
UML的各种关系理解
时间:
2015-05-26 23:18:39
阅读:
381
评论:
0
收藏:
0
[点我收藏+]
泛化关系(generalization)(
IS A
)
解释:就是继承关系,继承关系为 is-a的关系;两个对象之间如果可以用 is-a 来表示,就是继承关系:(..是..)
eg:IPhone5s 的类 is a IPhone5 的类 ,从哲学的角度上讲,IPhone5s类就是iPhone5类--因为它可以实在iPhone5 的类上修改而产生的,对比5而言5s只有功能的
修改或者增加,并没有减少
。
因为5的类是有具体实现(非抽象类),5s也是有具体实现(非抽象类
)
的所以就叫继承
同理,
如果5类 和5s类都是抽象类
,那也是可以称为继承的,要不就就成了实现了
。【抽象到抽象,具体到具体】
类图:
实现关系(realize)(IS A)
解释:
和泛化关系(generalization)几乎一致,区别说就是 一个继承抽象类(abstract ,interface),一个继承具体类
eg:iPhone 类 和 iPhone 5 的类 的关系 iPhone 类是没有具体实现的,是一个
抽象类
,一个
抽象的概念【抽象到具体】
类图:
聚合关系(aggregation)(has-a)
解释:就是由某某组成的关系,聚合关系的两个类处于不同的层次,
一个是整体,一个是部分
。而且各个组成部分脱离整体也是可以存在的,
整体和部分的生命周期是独立的
。如果有联系产生那就是
Composition(组合)
关系了。代码上的体现:如果A由B聚合成,表现为A包含有B的全局对象,但是
B对象可以不在A创建的时刻创建
。
eg: 部门和员工,当部门解散后,员工的生命周期是不会随着部门的生命周期的结束而结束。
类图:
组合关系(composition)(contains-a)
解释:就是由某某组装而成的关系,聚合关系的两个类处于不同的层次,
一个是整体,一个是部分
,各个组成部分脱离整体是不可以存在的。
整体和部分的生命周期是一致的
。代码上的体现:如果A由B组成,表现为A包含有B的全局对象,
并且B对象在A创建的时刻创建
。
eg:企业和部门,当企业倒闭后,部门也就随着企业的生命周期的结束而结束。人和四肢
类图:
关于聚合和组合的区分:其关键点就是整体和部分的生命周期是否一致这个条件。(深入思考:当整体的生命周期结束后,不会受到质变,也不会受到任何 对生命周期有影响的改变。例如 电脑 和CPU, 相反 例如 人体 和四肢)
关联关系(association)
解释:它描述不同类的对象之间的结构关系,是处于同一种层次;它是一
种静态关系,
通常与运行状态无关,一般由常识等因素决定的;它一般用来定义对象之间静态的、天然的结构; 所以,关联关系是一种“强关联”的关系;
不存在依赖关系的偶然性、关系也不是临时性的,一般是
长期性的
。代码体现:表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量。
eg:A引用了B作为属性
类图:
依赖关系(dependency)
解释:它描述不同类的对象之间的结构关系,是处于同一种层次;它是一
种动态关系
,与关联关系不同的是,它是
一种临时性的关系
,通常在运行期间产生,并且随着运行时的变化; 依赖关系也可能发生变化;
代码体现:例如如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。
eg:A中的方法调用了B
类图:
UML的各种关系理解
原文:http://www.cnblogs.com/vicxi/p/4531825.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年09月23日 (328)
2021年09月24日 (313)
2021年09月17日 (191)
2021年09月15日 (369)
2021年09月16日 (411)
2021年09月13日 (439)
2021年09月11日 (398)
2021年09月12日 (393)
2021年09月10日 (160)
2021年09月08日 (222)
最新文章
更多>
2021/09/28 scripts
2022-05-27
vue自定义全局指令v-emoji限制input输入表情和特殊字符
2022-05-27
9.26学习总结
2022-05-27
vim操作
2022-05-27
深入理解计算机基础 第三章
2022-05-27
C++ string 作为形参与引用传递(转)
2022-05-27
python 加解密
2022-05-27
JavaScript-对象数组里根据id获取name,对象可能有children属性
2022-05-27
SQL语句——保持现有内容在后面增加内容
2022-05-27
virsh命令文档
2022-05-27
教程昨日排行
更多>
1.
list.reverse()
2.
Django Admin 管理工具
3.
AppML 案例模型
4.
HTML 标签列表(功能排序)
5.
HTML 颜色名
6.
HTML 语言代码
7.
jQuery 事件
8.
jEasyUI 创建分割按钮
9.
jEasyUI 创建复杂布局
10.
jEasyUI 创建简单窗口
友情链接
汇智网
PHP教程
插件网
关于我们
-
联系我们
-
留言反馈
- 联系我们:wmxa8@hotmail.com
© 2014
bubuko.com
版权所有
打开技术之扣,分享程序人生!