• UML描述面向对象程序设计中类与类的关系


    在面向程序设计中,类与类之间的关系主要有关联关系、依赖关系、泛化关系、接口与实现关系共四种关系。下面将简要进行概述:

    一、关联关系

    关联关系是类与类中较为常见的关系,其中又包含了以下六种子关联关系:

    (一)双向关系:

    默认情况下,关联是双向的,例如,顾客与商品、父母与子女。双向关联关系用实线表示。

    (二)单向关联关系

    表示一个类与另一个类单方面关联关系,例如居民拥有地址。单向关联用带箭头的实线表示。

    (三)自关联关系

    代表该类与自身有关联关系,一个节点类的成员又是节点对象。用指向该类的带箭头的实线表示。

    (四)多重性关联关系

    指一个类的对象与另一个类的对象有多重关系,常有一对多、多对一、一对一、多对多等关联关系。例如,一个界面有多个按钮。

    (五)聚合关系

    助记方法:“聚集”,类似物以类聚。因此关联性较低,即使某一部份不存在或者销毁,并不影响其他单元。因此,使用“空心菱形+箭头的实线”表示(空心可记为关联性低,不走心),箭头指向小的聚合个体。例如,汽车组装中的各个零件:

    (六)组合关系共六种关系。

    助记:“组成”,那就意味着缺一不可,关联性极高。因此使用“实心菱形+箭头的实线”表示(实心可记为关联性高,走心),例如头和嘴巴:

    二、依赖关系

    依赖关系(Dependency)是一种使用关系,大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。常用“箭头+虚线”表示,由依赖的一方指向被依赖的一方。例如,驾驶员开车,在Driver类中的drive()方法将利用Car类型的对象car作为一个参数传递,以便在drive()方法中能够调用car的move()方法,因此Driver类以来Car类。

    三、泛化关系

    泛化关系(Generalization)也称作继承关系,用于表示父类(也称基类或超类)与子类(也称派生类)之间的关系。用“实线+空心箭头”表示,例如Student与Teacher类均可继承自Person类。

    四、接口与实现关系

    在接口中,一般没有属性,并且所有的操作都是抽象表示的,即只有操作声明,没有操作的实现方法。实现方法由使用接口的类进行定义。例如,交通工具都会移动,故有move()方法,首先提出声明;但是轮船、汽车的move()方法又各不相同,因此根据他们的各自的特性再进行具体的定义(实现接口)。

     

  • 相关阅读:
    关于unicode编码问题——[ASIS 2019]Unicorn shop
    cve-2020-7066 ssrf漏洞——GKCTF2020
    updatexml()报错注入——[极客大挑战 2019]HardSQL
    用户名和密码分开检验产生的mysql注入——[GXYCTF2019]BabySQli
    安恒月赛——Ezunserialize(反序列化字符逃逸)
    记一次Flask模板注入学习 [GYCTF2020]FlaskApp
    [CISCN2019 华北赛区 Day2 Web1]Hack World
    [SUCTF 2019]CheckIn(user.ini文件构成的php后门)
    sql注入用<>绕过被过滤的select ——百度杯9月第二场SQL
    剑指offer32 从上到下打印二叉树(叁)
  • 原文地址:https://www.cnblogs.com/somedayLi/p/9709186.html
Copyright © 2020-2023  润新知