zoukankan      html  css  js  c++  java
  • UML 之 类图(Class Dragram)

      类图的基本目的是显示建模系统的类型,主要包括的类型有:类、接口、数据类型、组件等。UML为这些类型起了个名字叫分类器。通常可以把分类器当做类,但在技术上,分类器是更为普遍的术语。实例如下图:

    1、类(Class)

      类的UML表示是一个长方形,自上向下分为三个区域:类名、属性、操作(行为/方法)。

      [1] 类名:顶部区域显示类的名字。

      [2] 属性:中间区域列出类的属性。参数格式:“参数名:参数类型”或“参数名:参数类型 = 默认值”

      [3] 操作:底部列出类的操作(行为/方法)。

    2、关联(Association)

      对象之间一种引用关系,比如老师类与课程类之间的关系。这种关系通常使用类的属性表达。关联又分为一般关联、聚合关联与组合关联。后两种在后面分析。在类图使用带箭头的实线表示,箭头从使用类指向被关联的类(被引用的类)。可以是单向和双向。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

      [1] 双向的关联可在线的任一端,放置一个角色名和多重值。

      多重值和它们的表示:

      0..1        0个或1个

      1          只能1个

      0..*        0个或多个

      *          0个或多个

      1..*        1个或多个

      0..5        0到5个 

      [2]单向关联,两个类是相关的,但是只有一个类知道这种联系的存在。

      [3]关联类

      在关联建模中,存在一些情况下,需要包括其它类,因为它包含了关于关联的有价值的信息。这种情况下,就会使用关联类来绑定你的基本关联。关联类和一般类一样表示。不同的是,主类和关联类之间用一条相对的点线连接。

      [4]聚合(Aggregation) :

      表示has-a的关系,是一种不稳定的包含关系。较强于一般关联,有整体与局部的关系,并且没有了整体,局部也可单独存在。如年级和学生的关系,年级包含学生,但如果公司倒闭,员工依然可以换公司。在类图使用空心的菱形箭头表示,菱形从局部指向整体。

      [5]组合(Composition) :

      表示contains-a的关系,是一种强烈的包含关系。组合类负责被组合类的生命周期。是一种更强的聚合关系。部分不能脱离整体存在。如公司和部门的关系,没有了公司,部门也不能存在了;调查问卷中问题和选项的关系;订单和订单选项的关系。在类图使用实心的菱形表示,菱形从局部指向整体。

      [6]、反射关联(自身关联)

      类也可以使用反射击关联与它本身相关联。

    3、泛化(Generalization,即继承)

      表示is-a的关系,是对象之间耦合度最大的一种关系,子类继承父类的所有细节。直接使用语言中的继承表达。在类图中使用带空心三角箭头的实线表示,箭头从子类指向父类。

    4、依赖(Dependency):

      对象之间最弱的一种关联方式,是临时性的关联。代码中一般指由局部变量、函数参数、返回值建立的对于其他对象的调用关系。一个类调用被依赖类中的某些方法而得以完成这个类的一些职责。在类图使用带箭头的虚线表示,箭头从使用类指向被依赖的类。

    5、实现(Realization):

      在类图中就是接口和实现的关系。在类图中使用带空心三角箭头的虚线表示,箭头从实现类指向接口。

    6、接口

      一个类和一个接口不同:一个类可以有它形态的真实实例,然而一个接口必须至少有一个类来实现它。在UML2中,一个接口被认为是类建模元素的特殊化。因此,接口就象类那样绘制。但是长方形顶部区域有“interface”。在类图中使用带空心三角箭头的虚线表示,箭头从实现类指向接口。

      接口和具体实现类之间用一个带有闭合单向箭头的实线表示继承。

    7、可见性

      UML识别四种类型的可见性:public, protected,private ,package。

      UML支持的可见性类型的标志

      +        Public

      #        Protected

      -         Private

      ~        Package

    8、软件包

      在一个大的系统或大的业务领域建模,在模型中将会有许多不同的类。管理所有的类将是一件很麻烦的事情,所以,UML提供了一个称为包的组织元素。软件包使建模者能够组织模型类到名字空间中。

      有两种方法表示软件包。没有规则要求使用哪种标记,依据个人的判断:哪种更便于你画的类图。两种方法都是由一个较小的长方形嵌套在一个大的长方形中开始的,建模者必须决定包的成员如何表示,

      1、如果建模者决定在大长方形中显示软件包的成员,则所有的那些成员需要被放置在长方形里面,另外,所有的软件包的名字需要放在软件包的较小的长方形之内。  

      2、如果建模者决定在大的长方形之外显示软件包成员,则所有将会在图上显示的成员都需要被置于长方形之外,为了显示属于软件包的分类器属于,从每个分类器画一条线到里面有加号的圆周,这些圆周粘附在软件包之上。

  • 相关阅读:
    Java实现 蓝桥杯 算法提高 小X的购物计划
    Java实现 蓝桥杯 算法提高 小X的购物计划
    Java实现 第十一届 蓝桥杯 (高职专科组)省内模拟赛
    Java实现 第十一届 蓝桥杯 (高职专科组)省内模拟赛
    Java实现 第十一届 蓝桥杯 (高职专科组)省内模拟赛
    Java 第十一届 蓝桥杯 省模拟赛 小明的城堡
    Java 第十一届 蓝桥杯 省模拟赛 小明的城堡
    Java 第十一届 蓝桥杯 省模拟赛 小明的城堡
    129. Sum Root to Leaf Numbers
    117. Populating Next Right Pointers in Each Node II
  • 原文地址:https://www.cnblogs.com/xinaixia/p/5066737.html
Copyright © 2011-2022 走看看