`
balan
  • 浏览: 68819 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

UML如何描述类之间的关系(一)

阅读更多

作者:Balan

UML(The Unified Modeling Language )就是统一建模语言,不论它是怎么发展来的,也不论最新的官方Specification或工业标准是哪个版本,我想总结一下工作中最常用的一些知识:用UML语言描述类的关系。

1,关联关系(Association)

关联关系是类(也可以说是对象)之间特定的对应关系。按照对象的数量对比,可以分为:

A 一对一

image  

比如公民和公民身份卡之间的对应关系。

B 一对多

image

一个部门对应0或者多位员工,一般而言一位员工只能属于某一个部门。

C 多对多

image

用户和服务是多对多的关系,一个用户可以注册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 的关联。注意下图箭头方向:

image

同样可以建立CitizenshipCard 到 Citizen 的关联:

image

代码表示为:

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 的关联,都属于单向关联 ,如果两个方向的关联都建立,就是双向关联

image

是否建立双向关联要在实际项目中酌情而定。再看个双向关联的例子:

image

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;
    }

}

1
1
分享到:
评论

相关推荐

    UML类之间的关系图

    在软件工程领域,UML(统一建模语言)是...通过理解和熟练应用这些UML类之间的关系,开发者能够清晰地表达复杂的软件设计,提高代码的可读性和维护性。无论是进行系统分析、设计还是文档编制,UML都是不可或缺的工具。

    六大UML类图以及关系

    - 实现关系表示一个接口(或抽象类)和一个实现该接口的具体类之间的关系。 - 接口定义了一组操作,而具体类实现了这些操作。 **表示方法**: - 在UML类图中,实现关系用一条带有空心箭头的虚线表示,箭头指向接口...

    基于UML类图的类之间依赖关系图论问题研究.pdf

    ### 基于UML类图的类之间依赖关系图论问题研究 #### 摘要及背景介绍 本文探讨了UML(统一建模语言)类图中的类间依赖关系,并通过图论的方法对其进行深入分析。随着面向对象编程方法在软件开发领域的广泛应用,UML...

    UML中类图实例讲解关系

    UML类图是UML中的一种重要组成部分,用于描述类和对象之间的关系。 1.UML类图的基本组成部分 UML类图由三个部分组成:类名、类特性和类操作。类名表示类的名称,如果是抽象类就用斜体显示。类特性是类的字段和属性...

    uml 实验类的关系

    1. **关联关系**:关联是描述类之间的一种结构关系,它表示一个类的对象与另一个类的对象之间存在某种联系。在图书管理系统的例子中,"管理员类"与"用户类"可能存在关联关系,例如,管理员管理多个用户,用户可以...

    UML中的包含关系和扩展关系

    在UML中,包含关系和扩展关系是两种关键的结构关系,它们帮助我们理解和描述系统的组件如何相互作用和组织。这些概念在软件设计师的考试中是重要的考察点,因此理解它们的含义和应用至关重要。 首先,我们来看包含...

    UML类关系-依赖,关联,聚合和组合

    UML类关系是UML中的一种基本概念,描述了类之间的关系。今天,我们将探讨UML类关系中的四种基本关系:依赖、关联、聚合和组合。 依赖(Dependency) 依赖关系是指一个类使用另一个类的对象或服务的关系。依赖关系...

    UML类图中的类 抽象类,具体类,主动类等

    泛化和特化是UML中描述类继承关系的概念。泛化是“是一种”关系,特化则是它的逆关系。例如,类`Animal`可以泛化出子类`Dog`和`Cat`,这意味着`Dog`和`Cat`都是`Animal`的一种。 7. **设计阶段的类详细度**: ...

    UML类图关系大全

    聚合和组合都是用来描述类之间的整体-部分关系,但它们之间存在着细微的区别。 ##### 1. 聚合 聚合表示一个类(整体)由其他类(部分)组成,但这些部分可以独立于整体而存在。例如,一个部门(整体)由多个员工...

    UML类图、类与类间关系文档(UML必看)

    UML类图是UML中的核心概念之一,它提供了一种可视化的方式来描绘系统的静态结构,包括类、接口、对象以及它们之间的关系。在这个文档中,我们将深入探讨UML类图、类与类间的关系,并结合提供的文档资源进行详细的...

    UML类与类的关系.doc

    UML中的类与类之间的关系是理解和设计复杂系统的关键,包括泛化、关联、依赖、聚合和组合等。 ### 泛化(Generalization) 泛化关系表示了类之间的继承关系,它体现了“is-a”(是一种)的概念,即子类是父类的一种...

    UML类框图基本关系及符号

    类框图是一种静态模型,用于描述系统中的类、对象及其之间的关系。类框图基本关系及符号是 UML 中的一些基本概念,包括类、包、接口、关联、依赖、聚合、组合、泛化等。 1. 基本元素符号: 类(Classes)是类框图...

    UML语言中用例关系描述(详细,有例子介绍)

    ### UML语言中用例关系描述 ...通过以上对UML语言中用例之间关系的详细介绍,相信读者已经对这些概念有了更深入的理解。在实际项目中,正确应用这些关系对于构建清晰、易于维护的系统模型至关重要。

    UML类关系之JAVA代码实现

    3. **关联(Association)**:关联描述了类之间的结构关系,表示一个类的对象可以引用另一个类的对象。关联可以是单向或双向的,并可以有导航性,即从一个类的对象可以直接访问另一个类的对象。例如: ```java public ...

    uml客户关系管理系统

    在这个课设项目中,“uml客户关系管理系统”深入展示了如何运用UML来构建一个有效的CRM(客户关系管理)系统。UML作为一种强大的建模工具,能够清晰地表达系统的结构和行为,帮助开发者理解、设计和沟通系统的需求。...

    UML类图与类的关系详解

    **UML类图与类的关系详解** UML(Unified Modeling Language),统一建模语言,是软件开发中一种用于可视化...通过清晰地描述类和类之间的交互,我们可以更好地理解和沟通软件设计思想,从而提升开发效率和软件质量。

    UML解惑:图说UML中的六大关系

    泛化,也称为继承或类属,是UML中最常见的一种关系,表示一个类(子类)继承另一个类(父类)的属性和行为,并可以添加新的属性和行为。这种关系在Java中通过关键字`extends`来实现。泛化关系体现了类与类之间的一种...

    uml静态视图习题

    13. 泛化关系:UML 中的泛化关系用于描述类之间的继承关系,展示类之间的继承关系。 14. 聚合关系:UML 中的聚合关系用于描述类之间的聚合关系,展示类之间的聚合关系。 15. 组合关系:UML 中的组合关系用于描述类...

    UML类图关系表

    UML类图是一种建模工具,它用于描述对象导向设计中的类、接口及其相互关系。在UML中,类图展示了类与类之间的多种关系,包括关联、单向关联、自关联、多重关联、聚合、组合、依赖以及泛化关系。下面我们将详细探讨...

    UML关系

    关联是UML中最常见的一种关系,表示两个或多个类之间的结构联系。关联可以是单向或双向的,也可以有多个角色,并且可以指定关联的多重性,即一个类实例可以与多少个另一个类的实例关联。例如,员工与部门之间的关联...

Global site tag (gtag.js) - Google Analytics