作者:Balan
UML(The Unified Modeling Language
)就是统一建模语言,不论它是怎么发展来的,也不论最新的官方Specification或工业标准是哪个版本,我想总结一下工作中最常用的一些知识:用UML语言描述类的关系。
1,关联关系(Association)
关联关系是类(也可以说是对象)之间特定的对应关系。按照对象的数量对比,可以分为:
A 一对一
比如公民和公民身份卡之间的对应关系。
B 一对多
一个部门对应0或者多位员工,一般而言一位员工只能属于某一个部门。
C 多对多
用户和服务是多对多的关系,一个用户可以注册0个或多个服务,一个服务则可以被0个或者多个用户复用。比如Windows Live用户可以激活邮件服务、Space服务等,而这些服务不是被一个用户所专有的。
关联的实质
从A类型到B类型的关联是指在A类型中定义了B类型作为属性。如下列代码:
package uml;
public class Citizen {
private CitizenshipCard card;
//其他属性
public CitizenshipCard getCard() {
return card;
}
public void setCard(CitizenshipCard card) {
this.card = card;
}
}
上述代码演示了从Citizen 到 CitizenshipCard 的关联。注意下图箭头方向:
同样可以建立CitizenshipCard 到 Citizen 的关联:
代码表示为:
package uml;
public class CitizenshipCard {
private Citizen citizen;
//其他属性
public Citizen getCitizen() {
return citizen;
}
public void setCitizen(Citizen citizen) {
this.citizen = citizen;
}
}
如果仅仅建立从Citizen 到 CitizenshipCard 的关联或者仅仅建立CitizenshipCard 到 Citizen 的关联,都属于单向关联
,如果两个方向的关联都建立,就是双向关联
:
是否建立双向关联要在实际项目中酌情而定。再看个双向关联的例子:
Department -----------------------------------------------------------------
package uml;
import java.util.Set;
public class Department {
private String name;
private Set<Employee> employees;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Set<Employee> getEmployees() {
return employees;
}
public void setEmployees(Set<Employee> employees) {
this.employees = employees;
}
}
Employee --------------------------------------------------------------------
package uml;
public class Employee {
private String name;
private long joinTime;
private Department department;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public long getJoinTime() {
return joinTime;
}
public void setJoinTime(long joinTime) {
this.joinTime = joinTime;
}
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
}
分享到:
相关推荐
类间关系有很多种,在大的类别上可以分为两种:纵向关系、横向关系。 纵向关系就是继承关系,它的概念非常明确,也成为OO的三个重要特征之一,这里不过多的讨论。
基于UML类图的类之间依赖关系图论问题研究.pdf
有例子介绍每种用例之间的关系,易于理解,适用于初学者。
关系是事物之间的联系。类之间有4种重要的关系:依赖、泛化、关联和实现。这些关系都可以映射到代码里。
2) 打开系统分析类图,把边界类包、控制类包、实体类包中的所有类拖入系统分析类图中,由于类的属性和操作、类之间的关系已经在每个类图中已经描述,所以在系统分析类图中会自然体现出来。 五、实验总结
大家知道,UML类图之间的关系确实难以理解,而诸多教材中的解释又各不相同;我是查阅了了很多教程后,总结出的相对具有共性的解释了; 实例介绍了类图之间的关系及面向对象的相关概念 同时,介绍了EA下类图各关系的...
2. 两个类之间的关联表示他们之间存在一种不适于继承的逻辑关系。在关联关系的表示图元的两端,可以表示参与关联的()特性。 A、约束 B、可见性 C、角色名 D、多重性 3、(D)是一种不包含操作的实现部分的特殊类。...
1. 类图(Class Diagram):用于描述类和对象之间的关系,包括继承、组合和关联关系。 2. 用例图(Use Case Diagram):用于描述系统的功能和行为,包括用例、参与者和关系。 3. 序列图(Sequence Diagram):用于...
以网上购物商店为例,运用UML分析了系统的静态模型和动态特征,分析了基于UML的网上购物商店的建模的实现过程:类图分析了网上购物商店中5个实体类(顾客类、订单类、商品类、记录类、管理员类)之间的关系;顾客用例图...
ModelGoon,Eclipse插件。由 java代码可自动生成UML类图、协作图、顺序图等,操作简单
论述UML用例图之间的关系,对用例图进行详细说明。
UML类图关系大全,里面把之间的关系描述的较清楚,尤其是图像
类的关系图, 类图, 通过starUML绘制的类类之间的关系图, 包含8中类的关系. 详细讲解见博客: http://my.oschina.net/whforever/blog/645501
其中UML序列图就是用来描述类与类之间的方法调用过程(或消息发送)是如何实现的。本文通过一个具体的应用程序的设计与实现过程,详细说明了利用UML序列图设计Java应用程序,使得开发过程标准化、可视化,代码编程...
在画类图的时候,理清类和类之间的关系是重点。类的关系有泛化(Generalization)、实现(Realization)、依赖(Dependency)和关联(Association)。其中关联又分为一般关联关系和聚合关系(Aggregation),合成关系...
UML类图(Class diagram)是统一建模语言(UML)的一种图形表示,用于显示系统的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系。 在类图中,每个类由一个包含类名、属性和方法的矩形表示,...
8.在UML软件开发过程的需求分析和系统分析阶段,建立类模型的步骤分为 寻找确定类 、 定义类的接口 、定义类之间的关系、建立类图 和 建立系统包图 。 9.组合聚集是指“整体”拥有它的“部分”,它具有强的物主...
UML类图几种关系的总结,泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition...
UML试题1、UML中的交互图有两种,分别是顺序图和协作图,请分析一下两者之间的主要差别和各自的优缺点。掌握利用两种图进行的设计的方法。 答:协作图可视化地表示了对象之间随时间发生的交互,它除了展示对象之间的...
UML类图-关系数据库之间的映射[收集].pdf