`
iamzhongyong
  • 浏览: 806532 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

【转】UML类关联关系详解

 
阅读更多

对于UML类图的几种关联关系一直比较疑惑,在晚上找了一篇比较不错的文章,学习一下,后面在项目和日常过程中用起来。

 

-------------------------------------------------------------------------------------------------------------------------

本篇主要就以前自己一直感觉很迷糊的几种class之间的关系进行整理,让我们在真正用UML进行比如类图设计时能够更加清晰明了;以下就分别介绍这几种关系:

 

一、继承

        指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性;

 

 


二、实现

        指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过关键字implements明确标识,在设计时一般没有争议性;

 

 


三、依赖

        可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个method方法中使用;

 

 


四、关联

        他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的;表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量;

 

 

 


五、聚合

        聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;

 

 

 

六、组合

        组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的大脑;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;

 

 


        对于继承、实现这两种关系没多少疑问,他们体现的是一种类与类、或者类与接口间的纵向关系;其他的四者关系则体现的是类与类、或者类与接口间的引用、横向关系,是比较难区分的,有很多事物间的关系要想准备定位是很难的,前面也提到,这几种关系都是语义级别的,所以从代码层面并不能完全区分各种关系;但总的来说,后几种关系所表现的强弱程度依次为:组合>聚合>关联>依赖;

 

分享到:
评论

相关推荐

    UML类图与类的关系详解

    **UML类图与类的关系详解** UML(Unified Modeling Language),统一建模语言,是软件开发中一种用于可视化和表达系统设计的图形表示法。类图是UML中的核心概念,它描述了系统中类的结构和它们之间的关系。在理解和...

    六大UML类图以及关系

    ### UML类图关系详解 #### 一、引言 UML(Unified Modeling Language,统一建模语言)是一种广泛应用于软件工程领域的图形化语言,它帮助开发者理解和设计系统。其中,UML类图是最常用的一种图示方式,用于描述系统...

    UML四种关系

    ### UML四种关系详解 #### 一、引言 统一建模语言(Unified Modeling Language,简称UML)是一种用于软件工程领域的图形化语言,旨在帮助软件开发者构建清晰、直观的系统模型。在UML中,关系是描述不同类之间相互...

    设计模式存在哪些关联关系,六种关系傻傻分不清--- UML图示详解.doc

    本文将详细解析六种常见的类与类之间的关联关系,并通过UML图示进行详解。 1. **依赖(Dependency)**:依赖是最基本的关系,表示一个类A使用了另一个类B。这种关系通常是临时性的,如方法参数、局部变量或成员变量。...

    UML类图关系大全

    ### UML类图关系详解 #### 一、引言 UML(Unified Modeling Language,统一建模语言)是一种广泛应用于软件工程领域的图形化规范,用于描述软件系统的结构和行为。UML类图作为UML中的一种重要图表类型,主要用于...

    UML类图说明类图关系

    **关联关系**是UML类图中最基本的关系之一,表示类与类之间的连接方式。 - **普通关联**:最常见的关联类型,表示两个类之间的简单连接关系。例如,“人”类与“计算机”类之间的关联。 - **递归关联**:当一个类...

    UML课后习题答案详解

    3. **关联和依赖**:关联描述了类之间的结构关系,而依赖则表示一个类的实现或行为需要另一个类的参与。它们在类图中用不同的线段表示。 4. **泛化和实现**:泛化是继承的概念,一个类可以从另一个类继承属性和操作...

    详解UML图之类图

    类的元数则是用来描述类与类之间关联关系的数量约束,比如“1..*”表示至少有一个实例,而“0..*”则表示没有实例或更多实例。 在类图的使用过程中,还可能会涉及到包(Package)的概念,包是将模型元素组织在一起...

    UML2.0中的14种图详解

    UML 2.0 中的 14 种图详解 UML(Unified Modeling Language)统一建模语言,是面向对象软件的标准化建模语言。UML 2.0 共包括 14 种图形,大致分成静态图和动态图两类。最常用的 UML 图包括:用例图、类图、组件图...

    UML关系

    **UML(统一建模语言)关系详解** UML,全称为Unified Modeling Language,是软件工程领域中一种标准的建模语言,用于可视化、构造和文档化系统的设计。UML关系是UML模型中的核心概念,它定义了模型元素之间的连接...

    UML软件设计方法详解

    类图则重点讲解类、接口、关联、继承、聚合和组合等概念,展示软件的静态结构。对象图和类图相似,但更注重实际运行时的对象状态。包图和组件图用于展示系统的模块化结构,而部署图则关注物理架构的布置。行为图如...

    UML技术建模实例详解

    1. **类图(Class Diagram)**:类图是UML中最基本的图表之一,用于描绘系统中的类、接口以及它们之间的关系,如继承、关联、依赖和聚合。在项目中,类图可以帮助我们理解对象的结构和属性,以及类之间的相互作用。 2...

    UML建模实例详解

    - **类图(Class Diagram)**:UML中的类图展示了系统的静态结构,包括类、接口、关联、泛化(继承)和依赖关系等。 - **对象图(Object Diagram)**:类图的实例,显示了特定时刻系统中对象的状态和相互关系。 -...

    UML-详解建模实例

    - **关联(Association)**: 描述类之间的关系,如“拥有”、“依赖”等。 - **聚合(Aggregation)与组合(Composition)**: 特殊的关联,表示整体与部分的关系,组合具有更强的生命周期控制。 - **依赖...

    UML详解

    1. **类图(Class Diagram)**:这是UML中最基本的图表类型,用于表示系统中的类、接口以及它们之间的关系,如继承、关联、依赖等。类图可以帮助我们理解系统的静态结构。 2. **对象图(Object Diagram)**:对象图是...

    UML课后题问题详解.doc

    《UML课后题问题详解》 UML(Unified Modeling Language),统一建模语言,是软件开发中一种重要的建模工具,尤其在面向对象的分析和设计中扮演着核心角色。本文将深入解析UML的一些关键概念,如用例图、类图与对象...

    UML-类图详解.doc

    "UML-类图详解" UML 类图是 UML 的静态机制中一个重点,它不但是设计人员关心的核心,更是实现人员关注的核心。类图显示了一组类、接口、协作以及他们之间的关系。 一、类的定义 类是具有相似结构、行为和关系的...

    uml用例试图详解

    **UML用例视图详解** UML(统一建模语言)是软件开发过程中广泛使用的建模工具,它提供了一种标准化的方式来描述系统的结构和行为。在UML中,用例视图是系统需求分析阶段的关键组成部分,它主要用于描绘系统与外部...

Global site tag (gtag.js) - Google Analytics