UML概念之类图

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jia281460530/article/details/42034761
小序:
     类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。在系统中,每个类都具有一定的职责,职责指的是类要完成什么样的功能,要承担什么样的义务。一个类可以有多种职责,设计得好的类一般只有一种职责。在定义类的时候,将类的职责分解成为类的属性和操作(即方法)。类的属性即类的数据职责,类的操作即类的行为职责。设计类是面向对象设计中最重要的组成部分,也是最复杂和最耗时的部分.(引自网上的一篇文章感觉说的比较好就引来了,文章最下方有作者的连接地址)

主要内容:1.如何通过UML类图来表是一个类
         2.学习UML类图之间的关系(泛华,实现,组合,聚合,关联,依赖)和它们的图形表示形式

UML视图有很多,静态视图,用例视图,顺序图,协作图,状态机视图等等....  下图为UML中的视图和图:

这里只是简单描述一下UML静态视图中的类图。主要原因是为了进一步的学习设计模式作准备。

类图(Class Diagram)使用出现在系统中的不同类来描述系统的静态结构,它用来描述不同的类以及它们之间的关系
在UML中,类使用包含类名属性操作且带有分隔线的长方形来表示。下面就对UML类图中结构表示方式详细介绍

类名:类的名字,一个字符串表示
属性:表示方式:
       可见性 名称:类型 [ = 缺省值 ]
  其中可见性有三种:
             “-”:私有(private),
                       “+”公共(public),
                        "#":代表保护类型(protected)
   名称:就是属性的变量名 
   类型:对应属性存储类型
   缺省值:一般省略,代表变量的初始化值

操作:表示方式为:
            可见性 名称(参数列表) [ : 返回类型]
      可见性:同属性可见性
      名称:操作的方法名,用一个字符串表示
      参数列表:方法名中的参数,多个逗号隔开
      返回类型:方法的返回值的类型

例如:定义一个Employee类,它包含属性name,age,email和操作modifyInfo  UML类图具体表示如下:

 

在UML类图中常用的有泛化(Generalization),实现(Realization),关联(Assocation),聚合(Aggregation),组合(Composition),依赖(Dependency),下面就详细介绍下他们的含义与标示方式。这也是我学习重点。

1.泛化 (Generalization)
【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为
泛化不是java中的泛型,泛型表示面向对象思想中的“继承”关系  
 表示方式:子类用实体箭头指向父类。
  例子:如下图红线所示
  
2.实现(Realization)
【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现.
UML类图中的实现,就对应面向对象编程中的接口的实现
表示方法:子类用三角箭头的虚线,指向接口  如下图所示:

3.关联(Association)
关联关系:是一种拥有的关系,它使一个类知道另一个类的属性和方法;其中关联关系是可以双向的也可以是单向的。
双向的可以有两个箭头或者没有箭头,单向的是只有一个箭头.
使用Java、C#和C++等编程语言实现关联关系时,通常将一个类的对象作为另一个类的成员变量


4.聚合(Aggregation)
聚合关系:聚合关系是一个整体和部分的关系,且部分可以离开整体单独存在
聚合关系是关联关系的一种,是强的关联关系,关联和聚合在语法是无法区分,必须考察具体逻辑关系
代码体现:成员变量。
箭头及指向:带空心菱形的实心线,菱形指向整体。
具体如下图:

5.组合(Composition)    
    组合关系:整体和部分关系,但部分是不能离开整体二单独存在。如公司和部门是整体和部分的关系,没有公司,就没有部门。
    组合关系是关联关系的一种,比聚合关系 还要强的关系,它要求普通的聚合关系中代表整体的对象部分的对象生命周期
代码体现:成员变量
表示方式:带实心菱形的实线,菱形指向整体。
如下图:



6依赖(Dependency)
依赖关系:是一种使用的关系,即一个类试下需要另一个类的协助,所以要尽量不使用相向的互相依赖
代码表现:局部变量,方法的参数或对静态方法的调用
箭头指向 :带箭头的虚线,指向被使用者
如图:

阅读更多 登录后自动展开
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页