看懂类与类之间的六种关系

简单介绍

类之间的关系有:

  • 依赖、泛化(继承)、实现、关联、聚合、组合

我们在描述类之间的关系的时候,可以使用UML图

  • UML即Unified modeling language(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果
  • UML图分类
    • 用例图(use case)
    • 静态结构图:类图、对象图、包图、组件图、部署图
    • 动态行为图:交互图(时序图与协作图)、状态图、活动图
  • 类图是描述类与类之间的关系的,是UML图中最核心的
  • UML类图中对应六种关系的符号
    符号
  • UML类图中类的符号
    在这里插入图片描述
  • 在IDEA中使用PlantUML码图,进入官网
    在这里插入图片描述

依赖关系(Dependence)

  • 只要是在类中用到了对方,那么他们之间就存在依赖关系。如果没有对方,连编绎都通过不了。
  • 包括以下几种形式
    • 类中用到了对方
    • 是类的成员属性
    • 是方法的返回类型
    • 是方法接收的参数类型
    • 方法中使用到
  • 箭头方向:PersonServiceBean 依赖于 PersonDao

1

泛化关系(Generalization)

  • 泛化关系实际上就是继承关系,他是依赖关系的特例
  • 如果A类继承了B类,我们就说A和B存在泛化关系
  • 箭头方向:PersonServiceBean 继承了 DaoSupport
    2

实现关系(Implementation)

  • 实现关系实际上就是A类实现B接口,他是依赖关系的特例
  • 箭头方向:PersonServiceBean 实现了 PersonService
    3

关联关系(Association)

  • 关联关系实际上就是类与类之间的联系,他是依赖关系的特例
  • 关联具有导航性:即双向关系单向关系
  • 关系具有多重性:如“1”(表示有且仅有一个),“0…”(表示0个或者多个),“0,1”(表示0个或者一个),“n…m”(表示n到 m个都可以),“m…*”(表示至少m个)。
  • 箭头方向:人关联ID卡
    在这里插入图片描述

聚合关系(Aggregation)

  • 聚合关系表示的是整体和部分的关系整体与部分可以分开
  • 聚合关系是关联关系的特例,所以他具有关联的导航性与多重性
  • 例如:一台电脑由键盘(keyboard)、显示器(monitor),鼠标等组成;组成电脑的各个配件是可以从电脑上分离出来的,使用带空心菱形的实线来表示。
  • 箭头方向:鼠标聚合到电脑

在这里插入图片描述

组合关系(Composition)

  • 组合关系:也是整体与部分的关系,但是整体与部分不可以分开
  • 举一个例子:
    • 在程序中我们定义实体:Person与IDCard、Head, 那么 Head 和Person 就是 组合,IDCard 和 Person 就是聚合。但是如果在程序中Person实体中定义了对IDCard进行级联删除,即删除Person时连同IDCard一起删除,那么IDCard 和 Person 就是组合了
  • 箭头方向:头组合在人上

6

猜你喜欢

转载自blog.csdn.net/Kobe_k/article/details/105507949