首页 > 其他分享 >UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)

UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)

时间:2023-11-21 21:47:50浏览次数:45  
标签:关系 聚合 泛化 继承 image 类图 Goose GooseGroup UML

UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)

1. 继承

继承是指一个类(称为子类、子接口)继承令一个类(称为父类、付接口)的功能

  • 子类具有可以增加它自己的新功能的能力
  • 在Java中此类关系通过关键字extends明确标志
  • 且子类只能继承一个父类,单继承
  • 包括类继承和接口继承两种,如下图,左侧是类继承,右侧是接口继承
  image

2. 实现

实现是指一个class类实现了interface接口

  • 实现的接口可以是多个
  • 在 Java 中此类关系通过implements 关键字标志
  • 接口可以从行为方面考虑,多个类具有相同的行为
  image

3. 依赖

依赖简单理解,就是一个类 A 使用到了另一个类 B

  • 此种依赖关系具有偶然性额、临时性的、非常弱的
  • 但是 B 类的变化会影响到 A
  • 代码层的表现是,类 B 作为方法参数被 A 的某个方法使用
  image

4. 关联

关联是两个类、或者类与接口之间语义级别的一种强依赖关系

  • 这种关系比依赖更强
  • 这种关系不是偶然性、也不是临时的,一般是长期、平等的
  • 代码层面表现为,类B 作为属性形式出现在类A中
    • 成员变量
    • 类变量
  image

5. 聚合

聚合关联关系的一种特例

  • 它体现的是整体与部分、has-a的关系
  • 整体和部分之间是可分离的,而且具有各自的生命周期
  • 部分可以属于多个整体对象,即部分可以“拆卸”存在其他整体对象中,也可为多个整体对象共享
  • 如计算机和CPU,公司和员工
  • 代码层面表现为,类B 作为属性形式出现在类A中
    • 成员变量
    • 类变量
  image

6. 组合

组合也是关联关系的一种特例

  • 它体现的是contains-a的关系
  • 此种关系比聚合更强,也称为强聚合
  • 体现整体和部分间的关系,但整体和部分不可分整体声明周期决定着部分的生命周期
  • 比如人体和到脑
    • 代码层面表现为,类B 作为属性形式出现在类A中
      • 成员变量
      • 类变量
  image

关系依赖强弱排序

组合>聚合>关联>依赖

组合和聚合的区别

  • 3种对象:雁群(GooseGroup)-大雁(Goose)-翅膀(Wings)
  • 聚合:雁群-大雁 (has-a, 生命周期独立)
  • 组合:大雁-翅膀 (contain-a, 生命周期不独立)

代码层面上组合和聚合的对比

信息的封装性不同

GooseGroup 和 Goose

public class GooseGroup {
    
    private Goose goose;
    
    public GooseGroup(Goose goose) {
        //GooseGroup 和 Goose有独立的生命周期,Goose 可对外暴露-聚合
        //客户端可以同时了解 GooseGroup 和 Goose
        this.goose = goose; 
    }
    
}

Goose 和 Wings

public class Goose {
    
    private Wings wings;
    
    public Goose() {
        //Goose 负责Wings 的生命周期-组合
        //客户端只认识Goose类,根本不知道Wings的存在,Winds 完全被封装到Goose中
        wings = new Wings(); 
    }
    
}
参考:https://www.cnblogs.com/alex-blog/articles/2704214.html
图片地址:https://note.youdao.com/share/?id=019f244276498ee401fbd6563fddbd49&type=note#/

标签:关系,聚合,泛化,继承,image,类图,Goose,GooseGroup,UML
From: https://www.cnblogs.com/Leo_wl/p/17847669.html

相关文章

  • 软件工程第六小组【萌友宠物圈】UML图设计
    一、数据流图【绘制人:刘兆隆】 主要外部实体:用户(User)管理员(Admin)主要过程:账户管理(AccountManagement)处理用户注册、登录、信息修改等功能。宠物笔记管理(PetNoteManagement)处理用户创建、编辑、删除宠物笔记,以及评论、点赞等互动。宠物信息......
  • Aignize第一期完善产品逻辑+类图说明书
    Aiganize产品说明+拟类图(第一期)·附图: 此应用由:前端:微信小程序前端+vue3后台管理系统后端:Springboot+Mysql服务器:后端服务器+AI交互服务器整个应用流程大致分为:活动|聊天|AI影子交互|三个模块用户在刚进入小程序未注册登录时:为游客注册登录后为用户,可申请为组局者用户逻辑如......
  • UML建模工具的安装与操作
    UML建模工具的安装与操作一实验目的l 使学生掌握常用的建模工具RationalRose、MiscrosoftVisio、PowerDesigner、Astah等的安装; l 使学生掌握RationalRose、MiscrosoftVisio、PowerDesigner、Astah等的使用;二实验环境及实验准备l 熟悉windows下软件安装方法;l 了......
  • 实验1:UML与面向对象程序设计原则
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、掌握面向对象程序设计中类与类之间的关系以及对应的UML类图;2、理解面向对象程序设计原则。[实验任务一]:UML复习阅读教材第一章复习UML,回答下述问题:Q:面向对象程序设计中类与类的关系都有哪几种?分别用类图实例说明。A......
  • UML笔记
    UML基本概念UML含义:UML(UnifiedModelinglanguage):统一建模语言U统一:表示是一种通用的标准,称为软件工业界的一种标准。UML表述的内容能被各类人员所理解,包括客户、领域专家、分析师、设计师、程序员、测试工程师及培训人员等M建模:建立软件系统的模型L语言:表明它是一套按......
  • Spring 4.x-Context的UML类图
    ......
  • UML类图图示
    UML常用的关系及图标的说明首先看‘‘动物’’矩形框,它代表一个类(Class)。类图分三层,第一层显示类的名称,如果是抽象类,则用斜体显示。第二层是类的特性,表示字段和属性。第三层是类的操作,表示方法或行为。‘-’表示private,'+'表示public,'#'表示protected。接口图《interface》显示,第一......
  • 机器学习之使用seaborn绘制各类图形
    使用seaborn绘制单双变量,类别散点图,箱型图,小提琴图去更直观的观察数据的分布情况在单变量图中使用displot,参数如下 双变量关系图使用joinplot,参数如下图 类别散点图使用stripplot(),参数如下 小提琴图和箱型图类似,一个使用violinplot(),另一个使用boxplot(),参数基本一......
  • 类与类之间的关系(类图)
    实习过程中,组长要求写类图,发现已经忘的差不多...来复习一下UML一.六大关系1.泛化(Generalization)<继承Inheritance>是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。带三角箭头的实线,上方......
  • idea plantuml 使用技巧
    实现的关系 A实现接口BA..|>B继承的关系A继承了BA--|>B依赖关系:A使用BA..>B聚合关系(整体与部分:可以分割,创建了整体,部分可以在后面创建 类似于人和收) A聚合BA--oB组合关系(整体与部分:不可分割,创建了整体,部分自动创建了类似于 人和头)......