zoukankan      html  css  js  c++  java
  • 带你了解UML中类图

    类图定义

    在UML中,类使用包含类名、属性和操作且带有分割线的长方形来表示。如定义一个Employee类,它包含属性name,age和email,以及操作modifyInfo()。

    在UML类图中,类一般有三部分组成:

    1).类名:每个类都必须有一个名字,类名是一个字符串。
    2).类的属性(Attributes),属性是指类的性质,即类的成员变量。一个类可以有任意多个属性,也可以没有属性,表示方式为:

    可见性 名称 : 类型 [ = 默认值 ]  

    可见性:表示该属性对于类外的元素而言是否可见,包括public、protected、private 3种。
    名称:表示属性名,用一个字符串表示。
    类型:表示属性的数据类型,可以是基本数据类型,也可以是用户自定义类型。
    默认值:是一个可选项,即属性的初始值。
    3).类的操作,操作是类的任意一个实例对象都可以使用的行为,是类的成员方法,表示方式为:

    可见性 名称([ 参数列表 ])[ : 返回类型 ]
    

    可见性:与属性的可见性定义相同。
    名称:即方法名,用一个字符串表示。
    参数列表:表示方法的参数,其语法与属性的定义相似,参数个数是任意的,多个参数之间用逗号“,”隔开。
    返回类型:是一个可选项,表示方法的返回类型。

    类之间的关系

    在软件系统中,类并不是孤立存在的,类与类之间存在各种关系。对于不同类型的关系,UML提供了不同的表示方式。

    1. 关联关系

    关联(Association)关系是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系。在UML类图中,用实线连接有关联关系的对象所对应的类。可以在关联线上标注角色名,关系的两端代表两种不同的角色。

    1).双向关联
    默认情况下,关联是双向的。例如,顾客(Customer)购买商品(Product)并拥有商品,反之,卖出的商品总有某个顾客与之关联。

    2).单向关联
    关联关系也可以是单向的,例如,顾客(Customer)拥有地址(Address),则Customer类与Address类具有单向关联关系。

    3).自关联
    在系统中可能会存在一些类的属性对象类型为该类本身。这种特殊的关联关系称为自关联。

    4).多重关联
    多重关联关系又称为重数性(Multiplicity)关联关系,表示两个关联对象在数量上的对应关系。在UML中,对象之间的多重性可以直接在关联直线上用一个数字或一个数字范围表示。

    5).聚合关系
    聚合(Aggregation)关系表示整体与部分的关系。在聚合关系中,成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在。在UML中,用空心菱形的直线表示。

    6).组合关系
    组合(Composition)关系也表示类之间的整体和部分关系,但是在组合关系中整体对象可以控制成员对象的生命周期。一旦整体对象不存在,成员对象也将不存在,成员对象与整体对象之间具有同生共死的关系。在UML中,组合关系用带实心菱形的直线表示。

    2.依赖关系

    依赖(Dependency)关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时用依赖关系。大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。

    3.泛化关系

    泛化(Generalization)关系也就是继承关系,用于描述父类与子类之间的关系。在UML中,泛化关系用带空心三角形的直线来表示。

    4.接口与实现关系

    UML中用与类的表示法类似的方式表示接口。接口与类之间存在一种实现(Realization)关系。在UML中,类与接口之间的实现关系用带空心三角形的虚线来表示。

  • 相关阅读:
    jQuery封装函数
    jquery中DOM
    phpstorm软件配置端口问题
    键盘控制div移动并且解决停顿问题(原生js)
    js实现可视化区域内拖拽
    一张图轻松搞懂javascript event对象的clientX,offsetX,screenX,pageX区别
    js之鼠标随动后面跟随事件(类似于长龙跟着跑)
    js多物体运动之淡入淡出效果
    js实现网站首页分享滑块
    JS实现ul,li排序效果
  • 原文地址:https://www.cnblogs.com/atai/p/14322956.html
Copyright © 2011-2022 走看看