理解UML中类的四种关系
来源:互联网 发布:招行一金通分析软件 编辑:程序博客网 时间:2024/05/02 17:43
关联关系(association):关联在图中表示为普通实线。是认识的关系,没有生命期的依赖。一般表示一种引用。就像两个陌生人一样互相认识了,成为朋友,而这两个人是互相独立的生命个体,这就是关联关系(双向关联)。而如果A认识B,而B不认识A,则是单向关联。还有一个自身关联,姑且认为是自我认知吧。
聚合(aggregation): 聚合就是“has-a”。实线空心菱形。
组合(compostion):组合就是“contains-a”。实线实心菱形。
这两种关系都是表示整体和部分的关系,不同之处:
组合关系是你和你的心的关系(心脏只属于自己)。大树和叶子,车子和轮胎。
你和你买的书之间的关系是聚合关系。(你不用这本书了,别人还可以用)。
依赖(dependency):是一种弱的关联,如果说关联是朋友之间,而依赖就是米老师说的一个公司和一个外包公司关系吧,是互相use的关系。这两个公司本来没关系的,但铁路公司想要开发的时候就和外包公司有了关系。虚线实箭头表示。
注:上述关系都是在一定的问题域中才有效,要看问题的描述,有时候关系还可能上升,如果这个公司长时间和一个外包公司亲密合作,就有可能成为是组合关系了。也就是老百姓常说的就事论事吧,要依情况而定。
泛化(realization):就是常说的继承了。实线空三角。
实现(Realization):一般是接口的实现。虚线空三角。
百度了一下,用简单的代码示例:
泛化(继承)
- class A{
- }
- class B : A{
- }
依赖:
- class A{
- public void Function(B b)
- {}
- }
- class B {
- }
关联
- class A{
- B b = new B();
- }
- class B {
- }
单向关联
两个类是相关的,但是只有一个类知道这种联系的存在
- <span style="color:#000000;">BankAccount.java
- public class BankAccount {
- }
- OverdrawnReport.java
- public class OverdrawnReport {
- private BankAccount overdrawnReports;
- }
- </span>
双向关联
两个类彼此知道它们间的联系
- <span style="color:#000000;">Job.java
- public class Job {
- private Person jobs;
- }
- Person.java
- public class Person {
- private Job persons;
- }
- </span>
聚合
- class A{
- B b = new B();
- C c = new C();
- }
- class B {
- }
- class C {
- }
组合
- class A{
- B b = new B();
- C c = new C();
- }
- class B {
- }
- class C {
- }
组合和聚合的代码好像大致相同。
图还是不太会画,唉...慢慢来吧..加油!
转载 :http://blog.csdn.net/xhf55555/article/details/6896516
- 理解UML中类的四种关系
- 理解UML中类的四种关系
- 理解UML中类的四种关系
- UML中类之间的四种关系
- UML 之 类的四种关系
- UML类图的四种关系
- UML的四种关系
- UML的四种关系
- UML的四种关系
- UML中四大关系的理解
- UML四种关系
- 【UML】------四种关系
- 【UML】四种关系
- UML四种关系
- UML 四种关系
- UML四种关系
- UML类图中类与类的四种关系图解(1)
- UML类图中类与类的四种关系图解
- xUtils框架的介绍(一)
- Swift中关于计算文本的宽度
- java Servlet里的byte temp[]=s.getBytes(“ISO-8859-1”);是什么意思? 2012-07-17 11:46javaxwow | 分类:JAVA相关 | 浏览7
- 罗盘奇针八法
- C# 时间格式化大全
- 理解UML中类的四种关系
- VLC 开发包 编写简单播放器
- 字节序问题--大端法小端法
- 日语学习之歌曲 卒業メモリーズ~サヨナラ、あなた。~ 沢井美空 2
- Set HashSet TreeSet
- 跟我一起学thinkPHP
- 使用AspNetPager控件分页
- Pro Android学习笔记(一四一):List Widgets(3):Remote views Service和Factory
- Python列表推导式和生成器表达式