作者: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;
}
}
分享到:
相关推荐
在软件工程领域,UML(统一建模语言)是...通过理解和熟练应用这些UML类之间的关系,开发者能够清晰地表达复杂的软件设计,提高代码的可读性和维护性。无论是进行系统分析、设计还是文档编制,UML都是不可或缺的工具。
- 实现关系表示一个接口(或抽象类)和一个实现该接口的具体类之间的关系。 - 接口定义了一组操作,而具体类实现了这些操作。 **表示方法**: - 在UML类图中,实现关系用一条带有空心箭头的虚线表示,箭头指向接口...
### 基于UML类图的类之间依赖关系图论问题研究 #### 摘要及背景介绍 本文探讨了UML(统一建模语言)类图中的类间依赖关系,并通过图论的方法对其进行深入分析。随着面向对象编程方法在软件开发领域的广泛应用,UML...
UML类图是UML中的一种重要组成部分,用于描述类和对象之间的关系。 1.UML类图的基本组成部分 UML类图由三个部分组成:类名、类特性和类操作。类名表示类的名称,如果是抽象类就用斜体显示。类特性是类的字段和属性...
1. **关联关系**:关联是描述类之间的一种结构关系,它表示一个类的对象与另一个类的对象之间存在某种联系。在图书管理系统的例子中,"管理员类"与"用户类"可能存在关联关系,例如,管理员管理多个用户,用户可以...
在UML中,包含关系和扩展关系是两种关键的结构关系,它们帮助我们理解和描述系统的组件如何相互作用和组织。这些概念在软件设计师的考试中是重要的考察点,因此理解它们的含义和应用至关重要。 首先,我们来看包含...
UML类关系是UML中的一种基本概念,描述了类之间的关系。今天,我们将探讨UML类关系中的四种基本关系:依赖、关联、聚合和组合。 依赖(Dependency) 依赖关系是指一个类使用另一个类的对象或服务的关系。依赖关系...
泛化和特化是UML中描述类继承关系的概念。泛化是“是一种”关系,特化则是它的逆关系。例如,类`Animal`可以泛化出子类`Dog`和`Cat`,这意味着`Dog`和`Cat`都是`Animal`的一种。 7. **设计阶段的类详细度**: ...
聚合和组合都是用来描述类之间的整体-部分关系,但它们之间存在着细微的区别。 ##### 1. 聚合 聚合表示一个类(整体)由其他类(部分)组成,但这些部分可以独立于整体而存在。例如,一个部门(整体)由多个员工...
UML类图是UML中的核心概念之一,它提供了一种可视化的方式来描绘系统的静态结构,包括类、接口、对象以及它们之间的关系。在这个文档中,我们将深入探讨UML类图、类与类间的关系,并结合提供的文档资源进行详细的...
UML中的类与类之间的关系是理解和设计复杂系统的关键,包括泛化、关联、依赖、聚合和组合等。 ### 泛化(Generalization) 泛化关系表示了类之间的继承关系,它体现了“is-a”(是一种)的概念,即子类是父类的一种...
类框图是一种静态模型,用于描述系统中的类、对象及其之间的关系。类框图基本关系及符号是 UML 中的一些基本概念,包括类、包、接口、关联、依赖、聚合、组合、泛化等。 1. 基本元素符号: 类(Classes)是类框图...
### UML语言中用例关系描述 ...通过以上对UML语言中用例之间关系的详细介绍,相信读者已经对这些概念有了更深入的理解。在实际项目中,正确应用这些关系对于构建清晰、易于维护的系统模型至关重要。
3. **关联(Association)**:关联描述了类之间的结构关系,表示一个类的对象可以引用另一个类的对象。关联可以是单向或双向的,并可以有导航性,即从一个类的对象可以直接访问另一个类的对象。例如: ```java public ...
在这个课设项目中,“uml客户关系管理系统”深入展示了如何运用UML来构建一个有效的CRM(客户关系管理)系统。UML作为一种强大的建模工具,能够清晰地表达系统的结构和行为,帮助开发者理解、设计和沟通系统的需求。...
**UML类图与类的关系详解** UML(Unified Modeling Language),统一建模语言,是软件开发中一种用于可视化...通过清晰地描述类和类之间的交互,我们可以更好地理解和沟通软件设计思想,从而提升开发效率和软件质量。
泛化,也称为继承或类属,是UML中最常见的一种关系,表示一个类(子类)继承另一个类(父类)的属性和行为,并可以添加新的属性和行为。这种关系在Java中通过关键字`extends`来实现。泛化关系体现了类与类之间的一种...
13. 泛化关系:UML 中的泛化关系用于描述类之间的继承关系,展示类之间的继承关系。 14. 聚合关系:UML 中的聚合关系用于描述类之间的聚合关系,展示类之间的聚合关系。 15. 组合关系:UML 中的组合关系用于描述类...
UML类图是一种建模工具,它用于描述对象导向设计中的类、接口及其相互关系。在UML中,类图展示了类与类之间的多种关系,包括关联、单向关联、自关联、多重关联、聚合、组合、依赖以及泛化关系。下面我们将详细探讨...
关联是UML中最常见的一种关系,表示两个或多个类之间的结构联系。关联可以是单向或双向的,也可以有多个角色,并且可以指定关联的多重性,即一个类实例可以与多少个另一个类的实例关联。例如,员工与部门之间的关联...