共同的事业,共同的斗争,可以使人们产生忍受一切的力量。 ——奥斯特洛夫斯基
引导语
在学习设计模式之前呢,咱们先了解下统计建模语言UML,这样有助于理解后面介绍的设计模式。
统一建模语言(UML)是规约语言,是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。
在UML2.2中定义了14个图示,其中,主要介绍类图、简单介绍行为式图形和时序图。
1概况
结构性图形(Structure diagrams)强调的是系统式的建模。
行为式图形(Behavior diagrams)强调系统模型中触发的事件。
交互性图形(Interaction diagrams),属于行为图形的子集合,强调系统模型中的资料流程。
2类图
类图一种静态结构图,用于表示类(核心类-属性+方法)、接口、实例等直接互相的静态关系。
一般如图,最上面是类名,中间包含类的属性,底部包含类的方法。
关系:
1.箭头方向:从子类指向父类
2.空心三角箭头:继承(泛化)或实现
3.实线-继承
实线-关联(通常一个类中有另一个类的对象作为属性)
4.虚线-实现
虚线-依赖(一个类依赖另一个类实现功能,作为参数、返回值)
5.菱形就是个盛东西的器皿
空心菱形-聚合:可以放很多相同的东西(箭头方向所指的类);整体和局部的关系,有着独立的生命周期。
实心菱形-组合:已经有实体结构的存在;有相同的生命周期。
6.关联(has a)
当一个类作为另一个类某个方法的参数时,为关联。
关联、组成和聚集的差异:
例如,一个大学包含若干个系(如化学系),每个系由若干名教授。如果大学撤销,这些系也就不复存在了,但这些教授仍会继续存在。还需注意,一名教授可以在不同系甚至不同学校兼职,而一个系不能属于两所大学。所以,大学与系之间是组成关系,而系与教授是聚合关系。
7.表示
抽象类用斜体
属性(访问权限+属性+类型)
方法(访问权限+方法+返回值类型)
+:public
-:private
\#:protected
~:default
接口类用<>或者棒棒糖表示。
3组件图
组件图表示组件是如何互相组织以构建更大的组件或是软件系统的。
组件是封装了可执行特定功能的单位。组件的类型包括了可执行文件、文档、数据库表格、文件和库文件等。
4活动图
活动图是工作流的图形化表示。
活动图由若干不同形状的图形组成,图形之间由箭头连接。
圆角矩形:表示“动作”;
菱形:表示“决策”;
粗实线:表示并行活动的开始(分离)和结束(汇合);
黑圆:工作流的开始(初始节点);
黑圈套住的黑圆:工作流的结束(结束节点)。
箭头从开始一路指向结束,用来表示活动的先后顺序。
另:
控制流程图、数据流程图、伪代码、状态图。
5用例图
用例图是用户与系统交互的最简表示形式,展现了用户和与他相关的用例之间的关系。
目的就是为了可以让人在一个更高的层次概览整个系统,用平白的话语让项目参与者理解系统。它可以辅以额外的图表和文档,以更加完整地展现系统的功能和技术细节。
6时序图
时序图,亦称为循序图/序列图,是一种UML行为图。
它描述了消息在生命线上按照约定顺序执行一种交互行为。它可以表示用例的行为顺序,当执行一个用例行为时,序列图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。
推荐阅读
JVM:Java中的语法糖,你了解多少?
JVM:虚拟机方法调用(理解重载和重写的本质)
JVM:垃圾回收·回收哪些内存
JVM:了解垃圾收集器
JVM:虚拟机运行时栈帧结构
JVM:类加载的全过程
JVM:类加载器·双亲委派模型
直击Redis实战-工作中常见问题
话说:Redis中的事件和Reactor模式
话说:Redis的高可用方案-Redis集群模式
扫码关注更多精彩 您的点赞、在看和关注,是对小编莫大的支持和鼓励哟!