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

UML类图

 
阅读更多

        UML类图之一

 

        在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)

         1. 泛化(Generalization

        【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。

        【箭头指向】:带三角箭头的实线,箭头指向父类

UML类图几种关系的总结 

        2. 实现(Realization

        【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现.

        【箭头指向】:带三角箭头的虚线,箭头指向接口

UML类图几种关系的总结 

        3. 关联(Association)

        【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

        【代码体现】:成员变量

        【箭头及指向】:带普通箭头的实心线,指向被拥有者

UML类图几种关系的总结 

        上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。 

        下图为自身关联: 

UML类图几种关系的总结

        4. 聚合(Aggregation

        【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。

        聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

        【代码体现】:成员变量

        【箭头及指向】:带空心菱形的实心线,菱形指向整体

UML类图几种关系的总结 

        5. 组合(Composition)

        【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。

       组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。

【代码体现】:成员变量

【箭头及指向】:带实心菱形的实线,菱形指向整体

UML类图几种关系的总结

        6. 依赖(Dependency)

        【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.

        【代码表现】:局部变量、方法的参数或者对静态方法的调用

        【箭头及指向】:带箭头的虚线,指向被使用者

UML类图几种关系的总结 

        各种关系的强弱顺序:

        泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖 

        下面这张UML图,比较形象地展示了各种类图关系:

UML类图几种关系的总结

 

UML类图之二

 

首先是复习一下UML中九种图的理解:http://xhf123456789plain.blog.163.com/blog/static/172880482201192222144421/

画用例图:http://xhf123456789plain.blog.163.com/blog/static/172880482201192221826110/

下面是类图的实例(好像大话设计中有):

UML中类图实例

接口:空心圆+直线(唐老鸭类实现了‘讲人话’);
依赖:虚线+箭头(动物和空气的关系);
关联:实线+箭头(企鹅需要知道气候才迁移);
聚合:空心四边形+实线+箭头(雁群和大雁的关系);
合成/组合:实心四边形+实线+箭头(鸟和翅膀的关系);
泛化/继承:空心三角形+实线(动物和鸟的继承关系);
实现:空心三角形+虚线(实现大雁飞翔的接口);

UML类图  

 

解释UML类图:

1.      首先看“动物”矩形框,它代表一个类。该类图分为三层,第一层显示类的名称,如果是抽象类就要用斜体显示。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法和行为。

   注意前面的符号,‘+’表示public, ‘—’ 表示private, ‘#’表示protected.   

  

2.      “飞翔”矩形框表示一个接口图,它与类图的区别主要是顶端有《interface》显示,第一行是接口名称,第二行是接口方法。接口还有另一种表示方法,俗称棒棒糖表示法,就是唐老鸭类实现了“讲人话”的接口。

               

interfaceIFly                             interfaceIlanguage                              
{                                             {
   voidFly();                                   void Speak();
}                                            }

 

3.      动物,鸟,鸭,唐老鸭他们之间都是继承的关系,继承关系用空心三角形+实现来表示。   

                 

 

4.“大雁”实现了“飞翔”接口。实现接口用空心三角形+虚线来表示。(注:下面的图中应为空心三角形)

 

classBird:Animal                      class WideGoose:IFly
{                                       {
   //继承动物类                                 //实现飞翔接口
}                                       }

 

5.      企鹅与气候有很大的关系,企鹅需要“知道”气候的变化,需要“了解”气候规律。当一个类“知道”另一个类时,可以用关联(association)关系。关联关系用实线箭头来表示。  

       

class Penguin :Bird
{
   private Climateclimate;//在企鹅Penguin中,引用到气候Climate对象
}

 

6.      “大雁”和“雁群”这两个类。大雁是群居动物,每只大雁都属于一个雁群,一个雁群可以有多只大雁。所以它们之间就满足聚合(Aggregation)关系。聚合表示一种弱的“拥有”关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。聚合关系用空心的菱形+ 实线箭头表示。

    

 

classWideGooseAggregate
{
   private WideGoose[]arrayWideGoose;
   //在雁群WideGooseAggregate类中,有大雁数组对象arrayWideGoose
}

 

7.      “鸟”和“翅膀”这两个类。鸟和翅膀似整体和部分的关系,并且翅膀和鸟的生命周期是相同的,在这里鸟和其翅膀就是合成关系。合成(composition)是一种强的“拥有”关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。合成关系用实心的的菱形+实线箭头来表示。另外,合成关系的连线两端还有一个数字“1”和数字“2”,,这被称为基数。表明这一端的类可以有几个实例,很显然,一个鸟应该有两支翅膀。如果一个类可能有无数个实例,则就用“n”来表示。关联关系,聚合关系也可以有基数的。

class Bird 
{
  private Wing wing;
  public Bird()
   {
      wing=new Wing();
    //在鸟Bird类中,初始化时,实例化翅膀Wing,它们之间同时生成
   }
}

 

8.      “动物”、“氧气”与“水”之间。动物有几大特征,比如有新陈代谢,能繁殖。而动物要有生命,需要氧气,水以及食物等。也就是说动物依赖于氧气和水。它们之间是依赖关系(Dependency),用虚线箭头来表示。

 

 

abstract class Animal
{
   public bolism(Oxygenoxygen,Water water)
    {
    } 
}

 

 

本文参考的原文来源:

http://www.open-open.com/lib/view/open1328059700311.html

http://blog.csdn.net/xhf55555/article/details/6896316

 

 

分享到:
评论

相关推荐

    JDK UML 类图大全

    在JDK中,UML类图可以帮助我们理解和分析Java类库的结构,包括类、接口、继承关系、关联、聚合和组合等。 **类图的基本元素** 1. **类(Class)**: 类图的核心元素,表示具有共同属性、操作和关系的一组对象。在...

    spring源码全部uml类图

    在"spring源码全部uml类图"中,我们可以深入探讨Spring框架的内部结构和设计模式。 首先,Spring框架的核心组件包括IoC(Inversion of Control,控制反转)容器和AOP(Aspect-Oriented Programming,面向切面编程)...

    计算器 UML类图 c++

    在IT行业中,UML(统一建模语言)是一种标准的...学习这个案例,你可以了解如何将业务逻辑转化为UML类图,再将类图转换为实际的C++代码。这有助于提升你对面向对象编程的理解,同时也能掌握UML在软件工程中的实际应用。

    eclipse画UML类图的jar包.zip

    "eclipse画UML类图的jar包.zip"是一个包含Eclipse插件的压缩文件,这些插件允许用户在Eclipse环境中绘制UML类图。UML类图是UML中的核心元素,它用于表示系统的静态结构,包括类、接口、继承关系、关联关系等。 这个...

    六大UML类图以及关系

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

    UML类图的各符号含义及表示

    下面我们将详细解释UML类图中各符号的含义。 1. 类(Class):在UML类图中,类通常用三层矩形表示。第一层写类的名称,如果类是抽象的,则名称以斜体显示。第二层列出类的属性(fields)和字段,第三层列出类的方法...

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

    综上所述,UML类图中的类是系统建模的关键元素,它们通过抽象类和具体类的区分来表达层次结构,通过主动类和非主动类来描述行为发起者和接收者。属性和操作则构成了类的核心特性,帮助我们理解和设计系统的结构和...

    uml 类图实例

    uml 类图实例 oom powerdesigner 绘制

    登录图UML类图.zip

    本文将深入探讨"登录图"在UML类图中的应用,以及如何通过类图来描绘和理解复杂的系统结构。 首先,UML类图是UML中的核心元素之一,它提供了一种图形化的方式来表示系统的静态结构。类图展示了类、接口、对象之间的...

    网上书店UML类图建模

    网上书店UML类图建模 基于提供的文件信息,我们可以总结出以下知识点: 1.UML类图建模: UML(Unified Modeling Language)是一种通用的建模语言,用于描述、设计和文档化软件系统。UML类图是一个静态结构图,...

    从UML类图到关系数据库表的代码生成方法

    从UML类图到关系数据库表的代码生成方法研究 UML(统一建模语言)是一种用于软件系统建模的标准化建模语言,它的类图是其中最常用的一种图示,用于表示系统中类的静态结构。关系数据库是目前主流的数据库管理系统,...

    图书管管理系统UML类图

    《图书管理系统的UML类图解析》 在软件开发领域,UML(统一建模语言)是一种标准化的建模工具,用于描绘系统的设计和结构。本篇将详细讲解基于UML类图的图书管理系统的构建过程,以帮助读者理解如何通过类图来描述...

    简单工厂模式uml类图

    java设计模式 简单工厂模式uml类图,一张图就让你秒懂简单工厂模式

    酒店管理信息系统UML类图

    酒店管理信息系统UML类图 酒店管理信息系统UML类图是酒店管理信息系统的设计蓝图,该系统旨在自动化酒店的日常管理行为。该系统包括三个操作角色:酒店管理员、前台服务员和经理,每个操作角色的权限不同。系统的...

    23种经典设计模式UML类图汇总

    在这个“23种经典设计模式UML类图汇总”中,你将找到有关这些模式的详细解释和它们在UML中的表示方式。 1. **单例模式**:确保一个类只有一个实例,并提供一个全局访问点。UML类图中,单例类通常有一个私有的构造...

    进销存管理系统UML类图

    进销存管理系统是一种广泛应用于商业运营中的软件工具,主要用于跟踪和管理商品的进货、销售和库存情况。在软件设计过程中,UML...同时,UML类图也提供了良好的沟通工具,使得项目团队成员能够共同理解和改进设计方案。

    阿里巴巴Java代码规约插件UML类图

    UML类图是UML中最基础的图表之一,它用于描绘类的结构和类之间的关系,包括继承、关联、聚合、组合等。通过类图,开发者可以直观地理解系统的设计,便于代码的分析和重构。在Java开发过程中,UML类图可以帮助设计...

    UML类图关系大全

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

    工厂方法模式uml类图

    java设计模式 工厂方法模式uml类图,一张图就让你秒懂工厂方法模式

    UML类图画法全程解析

    在UML类图中,主要元素包括: 1. 类(Class):类是一个复杂的数据类型,包含数据(属性)和操作(方法)。在UML图中,类通常用三层矩形表示,第一层写类名,第二层列属性,第三层列方法。类的访问修饰符(public、...

Global site tag (gtag.js) - Google Analytics