UML 简单易懂 教程
文章目录
- startuml
- OOAD
- OOP主要特征
- 域模型
- 关联关系
- 依赖关系
- 聚集关系
- 一般化关系
- UML(Unified Modeling Language),统一建模语言
- 静态建模
- UML元素
- 通过UML生成设计模式代码
startuml
软件地址:
https://pan.baidu.com/s/1d_b-2taoNuG-Fj3gP9RmYw
OOAD
- ooad:面向对象的分析与设计
- ooa:分析阶段
- ood:设计阶段
OOP主要特征
封装(encapsulation)
抽象(abstract)
继承(inheritance)
多态(polymorphism)
关联 (association)
例如:人使用计算机,人和计算机的关系。关联关系较弱。
聚合(aggregation)
例如:一个对象作为另一个对象的属性存在,轮胎和汽车的关系。关联较强
组合(composition)
例如:一个对象包含另一对象时,外部对象负责管理内部对象的生命周期的情况。关联关系最强。内部对象的创建由外部对象自己控制。外部对象不存在时,内部对象也不能存在。如电视机与显示器。
-内聚与耦合(cohesion&coupling)
域模型
域模型是面向对象的。在面向对象术语中域模型也可称为设计模型。域模型由以下内容组成:
具有状态和行为的域对象
域对象之间的关系
关联、依赖、聚集、一般化(泛化)。
关联关系
依赖关系
在BusinessService类中访问Customer类的方法,并且构造Customer类的实例,也就是说一个类要需要另一个来完成它的相关任务,叫依赖关系。
聚集关系
指的是整体与部分之间的关系,如:一个两只手
一般化关系
指类之间的继承关系
UML(Unified Modeling Language),统一建模语言
Assocition/DirectedAssociation:关联关系。Aggregation:聚合。Composition:组合。Generalization:一般化。Dependency:依赖关系。Realization:实现。
静态建模
创建并记录一个系统的静态特征、反应一个软件系统基础、固定的框架结构、创建相关问题域主要元素的视图
包括:用例图、类图、对象图、组件图、部署图。
用例图
展示系统的核心功能及与其交互的用户,用户被称之为“活动者”(Actor),用例使用椭圆表示
解释:管理员可以进行增删改查,来宾用户可以进行查询,管理员和来宾被称之为活动者,而增删改查则是用例。
类图
表现类的特征,类图描述了多个类,接口的特征,以及对象之间的协作与交互。由一个或多个矩形区域构成,内容包括:类型(类名),属性(可选),操作(可选)。
对象图
表现对象的特征,对象图展现了多个对象的特征及对象之间的交互。
组件图
例如:服务层和数据层之间的依赖关心等
部署图
##动态建模
用于展示系统的行为,包括时序图、协作图、状态图、活动图。
时序图(Sequence Diagram)
捕捉一段时间范围内多个对象之间的交互信息,强调消息交互的时间顺序
协作图(Collaboration Diagram)
表现一定范围内对象之间协作的信息,强调参与信息交流的对象之间的组织结构
状态图(State chart Diagram)
强调一个对象在不同事件触发时,内部状态的转变过程
活动图(Activity Diagram)
描述活动的流程
UML元素
- 包(package)
- UML的扩展机制
注释(comments)
构造型(stereotypes)
标记值(tagged values)
限制(constraints)
通过UML生成设计模式代码
步骤一:
步骤二:
步骤三:
选择观察者模式
步骤四:
生成的UML图:
步骤五:
生成代码
备注:
观察者模式的组成:
具体主题角色:在具体主题内部状态改变时,给所有登记过的观察者发出通知。具体主题角色通常用一个子类实现。
具体观察者角色:改角色而实现抽象观察者角色所要求的更新接口,以便使本身的状态与主题的状态相协调。如果需要,具体观察者角色可以保存一个指向具体主题角色的引用。通常用一个子类实现。
UML 简单易懂 教程相关推荐
- Xshell下载安装,史上最简单易懂教程
Xshell下载安装,史上最简单易懂教程 阿里云网盘提取码:46gw 阿里云网盘下载地址 百度网盘提取码:8888 百度网盘下载地址 1,下载完成后,得到这样的文件 2,XmanagerPowerSu ...
- 微信二次修改微信号_如何二次修改微信号?简单易懂教程
不知道大家有没有想修改修改自己的微信号呢?许多人当年注册的时候并没有多想一下,有的直接用自己的生日啊,名字缩写啊,520,1314之类的,但是微信又限制了修改次数的,想给自己尴尬的青春来一个了结都不. ...
- canvas基础简单易懂教程(完结,多图)
Python微信订餐小程序课程视频 https://blog.csdn.net/m0_56069948/article/details/122285951 Python实战量化交易理财系统 https ...
- 图片放大镜详细教程(简单易懂、注释清晰明了)
一.详细介绍 (1)放大镜的基本要领如下: 1.原图宽高比例=缩略图宽高比=放大镜的宽高比 2.大放大镜与小放大镜的倍数=原图与缩略图的倍数 3.默认两个放大镜与图片都是左上角重叠 4.原图相对于小放 ...
- 全网最简单易懂,Python漫画教程,高清PDF版免费下载,连小学生也能看懂
学习Python的小伙伴大部分应该都知道<看漫画学Python:有趣.有料.好玩.好用(全彩版)>这本书! <看漫画学Python>进阶版,在第1版的基础上讲解Python进阶 ...
- python如何安装panda数据库_在Pycharm中安装Pandas库方法(简单易懂)
开发环境的搭建是一件入门比较头疼的事情,在上期的文稿基础上,增加一项Anaconda的安装介绍.Anaconda是Python的一个发行版本,安装好了Anaconda就相当于安装好了Python,并且 ...
- 【转】区块链是什么,如何简单易懂地介绍区块链?
作者:知乎用户 链接:https://www.zhihu.com/question/37290469 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 友情提醒:比特币 ...
- 区块链入门:如何简单易懂地介绍区块链(图文)
原标题:区块链是什么,如何简单易懂地介绍区块链? 区块链目前就处于一个人人都谈区块链,却无法感知其实际技术魅力的阶段,正是因为此,做出区块链的杀手级应用就至关重要,要做到这一点就需要进行各种场景的探索 ...
- xbox手柄接收器驱动_新手有什么PC电脑手柄推荐?简单易懂5分钟教会你做出选择...
不知道大家入手柄坑是在什么情况?我以前也经常疑惑,用手柄玩PC游戏是什么感觉,总是在想手柄好用吗?后台因为看着身边很多同学玩游戏都是用手柄在玩游戏,我就偷偷买回来试了试,结果发现,诶真香,也特别后悔, ...
- LeetCode—笔记—51、N皇后——递归回溯,个人思路,简单易懂
LeetCode-笔记-51.N皇后--递归回溯,个人思路,简单易懂 51. N 皇后 n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 给你一个整数 ...
最新文章
- OpenGL+VS2015+WIN10 demo
- perl 对ENV环境变量的使用
- 运维自动化—ansible的使用
- c++中lambda表达式用法
- 路由器的异步和同步串行接口
- EntityFramework Core进行读写分离最佳实践方式,了解一下(二)?
- Spring IOC扫描器与注册器
- 嵌入式Linux系统编程学习之二十一命名管道(FIFO)
- Centos打开、关闭、结束tomcat,及查看tomcat运行日志
- MFC选择目录和多个文件
- enlightenment提权的工具
- 【Linux】CentOS 学习笔记之一(安装配制)
- 突破电信80端口封锁,用CDN架设公司服务器!
- 蜡笔小新鸿蒙系统,盘点蜡笔小新最污的四处剧情,网友:当年太纯洁现在终于看懂!...
- 智商情商哪个重要_你认为哪个更重要,情商还是智商?为什么?
- 数据库原理知识点总结一
- 【ResNet残差网络解析】
- ESD防护为何对集成电路如此重要?又该如何防护?
- java jacob更新目录,jacob更新word目录
- JVM之jstat命令