首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
UML的各种关系理解
时间:
2015-05-26 23:20:08
阅读:
199
评论:
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年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!