UML的几种关系介绍请移步《UML中的关系》!
要真正画好UML图,透彻的理解各个关系的具体含义,需要明白各个关系对应的代码实现。
一、依赖
依赖是类的五种关系中耦合最小的一种关系。
依赖关系可以描述为:Uses a
在生成代码的时候,这两个关系类都不会增加属性。
Public class FilmClip{
public FilmClip() {}
}
Public class Channel{
public Channel(){}
}
依赖关系的表现形式1:Channel类是全局的,则FilmClip类可以调用它 例如:VB中的公共模块,任何使用这个模块的类都叫做依赖于这个模块
表现形式2:Channel类是FilmClip类的某个方法中的变量,则FilmClip类可以调用它。
表现形式3:Channel类是作为FilmClip类中某个方法的参数或者返回值
如:
Public FilmClip{
Public Channel Grownup(Channel channel) {
return null;
}
}
二、泛化
泛化关系可以描述为:Is a ,子类将继承父类的所有属性和方法
对应代码:
class Shape{}
public class Circle : Shape{}
public class Polygon : Shape{}
三、关联
(1)双向关联
(2)单向关联
C3->C4:表示相识关系,指C3知道C4,C3可以调用C4的公共属性和方法。没有生命期的依赖。一般是表示为一种引用。
(3)自身关联
代码对应:
1、单向关联代码:
Public class Water {
public Climate m_Climate;
public Water(){}
}
Public class Climate {
public Climate() {}
}
可见生成的代码中,Water类的属性中增加了Climate类。
2、双相关联代码示例:
Public class Water {
public Climate m_Climate;
public Water(){}
}
Public class Climate {
public Water m_Water;
public Climate() {}
}
可见生成的代码中,两个类的属性都添加了!
3、聚合
聚合:表示雁群类是由大雁类聚合而成。雁群类聚合大雁类,但是大雁可以离开雁群而独立存在
Public class GooseGroup {
public Goose goose;
Public GooseGroup(Goose goose) {
this.goose = goose;
}
}
4、组合
Public class Goose {
public Wings wings;
public Goose() {
wings = new Wings();
}
}
聚合组合的区别:
1)构造函数不同:
聚合类的构造函数中包含了另一个类作为参数。
雁群类(GooseGroup)的构 造函数中要用到大雁(Goose)作为参数传递进来。大雁类(Goose)可以脱离雁群类而独立存在。
组合类的构造函数中包含了另一个类的实例化。
表明大雁类在实例化之前,一定要先实例化翅膀类(Wings),这两个类紧密的耦合在一起,同生共灭。翅膀类(Wings)是不可以脱离大雁类(Goose)而独立存在。
2)信息的封装性不同
在聚合关系中,客户端可以同时了解雁群类和大雁类,因为他们都是独立的。
在组合关系中,客户端只认识大雁类,根本就不知道翅膀类的存在,因为翅膀 类被严密的封装在大雁类中。
四、实现
实现指的是一个class类实现interface接口(可以是多个)的功能。
实现是类与接口之间最常见的关系之一。
interface interfaceA{}
class classA :interfaceA{}
分享到:
相关推荐
开题报告--基于uml的教务管理系统的分析与设计(10-5-4).pdf开题报告--基于uml的教务管理系统的分析与设计(10-5-4).pdf开题报告--基于uml的教务管理系统的分析与设计(10-5-4).pdf开题报告--基于uml的教务管理系统的...
UML图的绘制---ArgoUML
ER图课件-----UML上课ppt
学生成绩管理系统----UML课程设计rational+rose用例图,活动图,状态图.rar
第1章 为什么需要UML 第2章 建模基础 第二部分 基础篇——在学习中思考 第3章 UML核心元素 第4章 UML核心视图 第5章 UML核心模型 第6章 统一过程核心工作流简介 第三部分 进阶篇——在实践中思考 第8章 准备工作 第...
这是对一个贪吃蛇自己制作的UML课程设计 有UML类图 活动图 顺序图 用例图 可作为UML的参考 其中.mdl文件需要用rose或别的UML软件读取
Laravel UML图生成器自动生成Laravel代码的UML图。安装要通过composer安装LTU,请运行以下命令: composer require andyabih/laravel-to-uml --dev用法LTU默认将/uml路由注册到显示您的UML图的视图。 您可以使用以下...
大象-Thinking in UML.pdf
自-面向对象UML中类关系-.docx
大象--Thinking in UML 配套光盘完整版part3
UML-看懂UML类图和时序图.pdfUML-看懂UML类图和时序图.pdfUML-看懂UML类图和时序图.pdfUML-看懂UML类图和时序图.pdfUML-看懂UML类图和时序图.pdf
大象--Thinking in UML 配套光盘完整版part2
计算机类“卓越工程师”创新系列教材 《UML面向对象需求分析与建模教程--基于uml2.5标准》 邹盛荣主编 书号:978-7-03-044467-7 科学出版社 2015 本书主要介绍基于UML2.5标准系统建模的基本理论、软件分析与设计...
毕业设计---运用UML建模图书馆管理系统
EA和团队开发技巧----UML、软件开发与建构管理 1、UML与软件开发 2、软体开发最佳实践 3、实际实践经验分享 4、软件建构管理实践(集成EA与Subversion)
UML各种图的中文译名,因为翻译的原因可能会有所不一样,如:Sequence Diagram和Timing Diagram有时候都会被译成“时序图”,这是最让人困扰的地方!Sequence Diagram 除了被译为顺序图,还有序列图的译法。UML各种...
设计模式存在哪些关联关系,六种关系傻傻分不清--- UML图示详解.doc
IBM 利用 UML 进行实体关系建模
UML工具-(start UML),uml的制作工具,方便好用.
大象--Thinking in UML中文清晰版+配套光盘完整版part 1