首页 > 其他分享 >设计模式02 —— UML

设计模式02 —— UML

时间:2023-10-16 18:44:44浏览次数:34  
标签:02 父类 子类 箭头 实例 UML 设计模式 方法

设计模式02 —— UML

本教程参考:菜鸟教程 - 学的不仅是技术,更是梦想! (runoob.com)

参考书:《图解设计模式》

本系列为本人学习笔记,和课程学习笔记,资料和参考均源自互联网,希望各位大佬多多指点!


UML的概念

UML的全称是Undefined Modeling Language(统一建模语言)是让系统可视化,让规格和设计文档化的表现方法。

在笔记中可能会使用Java的术语。比如用Java中的“字段”(field)代替UML中的“属性”(attribute),用Java中的“方法”(method)来代替UML中的“操作”(operation)

类图

类图表达了一种静态的关系

类与层次结构

image

可以看到,这里是ChildClass继承了ParentClass

由子类指向父类

可以这样理解:定义子类的时候需要通过extends来指定父类,所以子类一定知道父类的定义。但是反过来父类并不知道子类的定义。我们可以理解为“只有知道了某个人的信息才能指向对方”,所以箭头是子类指向父类。

接口与实现

使用<>来表示Java的接口。箭头采取虚线

接口和抽象类使用斜体来表示,静态的方法使用下划线来表示

image

聚合

将这种“持有”的关系成为聚合。只要在一个类中只有另外一个类的实例——无论是一个还是多个,他们之间都是聚合关系。

展示聚合关系如下,使用菱形+非空心箭头来表示

可以使用联想记忆法,将空心菱形看作一个篮子,持有其他类的实例

image

可见性(访问控制)

image

  • “+” 表示public方法和字段,可以从类的外部访问方法和字段
  • “-” 表示private方法和字段,无法从类的外服访问方法和字段
  • “#” 表示protect方法和字段,只有类的本身,该类的子类,同一个包中的其他类可以访问这个方法和字段
  • “~” 表示default方法和字段,只有同一个包中的类才能访问的方法和字段

类的关联

在类的前面加上黑色三角表达类之间有关联,无论是“使用”,“生成”,“发送消息”等,都可以。

image

时序图

时序图表达的是一种随时间发生变化的动态行为。

UML的时序图表示程序在工作的时候,内部方法的调用顺序以及事件的发生顺序。

image

这个图中共有三个实例,长方形内部写有类名,跟在冒号之后,并且带有下划线,比如图中的Client。

如果需要,还可以在冒号前给出实例的名字,比如server:Server

每一个实例都有一个向下的虚线,称为生命线,可以理解为时间从上向下流逝,从过去到未来。生命线仅存在于实例的生命周期内

虚线上的长方形表示了实例正处于某种活动中。

最上面的线表示了Client调用了Server'的open方法。下面的虚线返回代表了open方法的返回,有些时序图也会省略返回的箭头。

沿着生命线从上到下阅读,遇到箭头时,可以顺着箭头所指的方向查看对象之间的协作。

标签:02,父类,子类,箭头,实例,UML,设计模式,方法
From: https://www.cnblogs.com/ZzTzZ/p/17768090.html

相关文章

  • 从嘉手札<2023-10-16>
    一、商君书1)更法商鞅和甘龙、杜挚同秦孝公商量变法。后两者认为变法会动移已有的社会结构,“圣人不易民而教,知者不变法而治”“法古无过,循礼无邪”但商鞅(公孙鞅)认为,三代不同礼而亡,五霸不同法而霸,知者作法,愚者制焉。“夫常人安于故习,学者溺于所闻”“反古者未必可非,循礼者未足......
  • 云原生周刊:CNCF 宣布 Cilium 毕业 | 2023.10.16
    开源项目推荐ReloaderReloader是一个Kubernetes控制器,用于监控ConfigMap和Secrets中的变化,并对Pod及其相关部署、StatefulSet、DaemonSet和DeploymentConfig进行滚动升级!SpegelSpegel在瑞典语中意为镜像,是一种无状态集群本地OCI注册镜像。Spegel使Kubernete......
  • Java设计模式
    七大设计原则开闭原则:是指一个软件实体如类、模块和函数应该对扩展开放,对修改关闭依赖倒置原则:是指设计代码结构时,高层模块不应该依赖底层模块,二者都应该依赖其抽象而不依赖于具体。单一职责原则:是指一个Class/Interface/Method只负责一项职责。接口隔离原则:是指用多个专......
  • 2023年第四季数据治理认证DAMA-CDGA/CDGP认证开始备考
    DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业竞争能力。DAMA是数据管理方面的认证,帮助数据从业者提升......
  • 2023年10月NPDP产品经理国际认证开始备考啦
    产品经理国际资格认证NPDP是新产品开发方面的认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会(PDMA)成立于1979年,是全球范围内产品开发与管理专业人士最杰出的倡导者,协助个人、企业或......
  • 2023年CSPM-3国标项目管理中级认证备考开始啦!
    CSPM-3中级项目管理专业人员评价,是中国标准化协会(全国项目管理标准化技术委员会秘书处),面向社会开展项目管理专业人员能力的等级证书。旨在构建多层次从业人员培养培训体系,建立健全人才职业能力评价和激励机制的要求,培养我国项目管理领域复合型人才。  【证书含金量】 ·竞聘优先......
  • 2024年软考考试和报名时间表,请接收~
    软考(计算机技术与软件专业技术资格(水平)考试)是纳入全国专业技术人员职业资格证书制度统一规划,实行大纲、试题、标准、证书均统一的考试办法。其目的是科学、公正地对全国计算机与软件专业技术人员进行职业资格、专业技术资格认定和专业技术水平测试。下面给大家介绍一下2024年软考的......
  • 2023年石门中学NOIP模拟测试(2023.10.16)
    T1\(\sumn\leq2\times10^6,x\leq10^9\)简单来说,让你在给出的序列中构造差分序列不出现\(x\)的一组解。签到题。对\(x\)分类讨论,排个序,调整一下,注意\(x=0\)时交叉构造以及\(a_i=0\)情况即可。Code#include<bits/stdc++.h>#defineilinline#definerintre......
  • day02-异常
    异常异常(Exception)指程序运行中出现的不期而至的各种情况,发生再程序运行期间,影响了正常的程序执行流程。 异常的分类检查性异常。最具有代表性的检查性异常是用户错误或问题引起的异常。运行时异常错误ERROR错误不是异常,而是脱离程序员控制的问题 异常体系......
  • 2023年10月最新全国省市区县和乡镇街道行政区划矢量边界坐标经纬度地图数据 shp geojs
    发现个可以免费下载全国 geojson 数据的网站,推荐一下。支持全国、省级、市级、区/县级、街道/乡镇级以及各级的联动数据,支持导入矢量地图渲染框架中使用,例如:D3、Echarts等geojson数据下载地址:https://geojson.hxkj.vip该项目github地址:https://github.com/TangSY/echarts-m......