Java设计模式(一)UML总结
定义
统一建模语言(英语: Unified Modeling Language ,缩写UML)是非专利的第三代建模和规约语言。
UML特点
- UML是一种开放的方法
- 用于说明、可视化、构建和编写一个正在开发的面向对象的、软件密集系统的制品的开放方法。
- UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。
UML2.2分类
UML2.2中一共定义了14种图示,分类如下:
- 结构式图形:强调的是系统式的建模
- 静态图(类图,对象图,包图)
- 实现图(组件图,部署图)
- 剖面图
- 复合结构图
- 行为式图形:强调系统模型中触发的事件
- 活动图
- 状态图
- 用例图
- 交互式图形:属于行为式图形子集合,强调系统模型中的资料流程
- 通信图
- 交互概述图(UML2.0)
- 时序图(UML2.0)
- 时间图(UML2.0)
UML类图
定义
Class Diagram:用于表示类、接口、实例等之间相互的静态关系。虽然名字叫类图,但类图中并不只有类(也包括权限,属性,方法等)。
记忆技巧
箭头方向
- 定义子类时需要通过extends关键字指定父类
- 子类一定是知道父类定义的,但父类并不知道子类的定义
- 只有知道对方信息时才能指向对方
- 所以箭头方向是从子类指向父类
实线-继承|虚线-实现

- 空心三角箭头:继承或实现
- 实线继承, is a关系,扩展目的,不虚,很结实
- 虚线-实现,虚线代表“虚”,无实体
实线-关联|虚线-依赖

- 实线-关联关系:关系稳定,实打实的关系,铁哥们
- 表示一个类对象和另一个类对象有关联
- 通常是一个类中有另一个类对象做为属性

- 虚线-依赖关系:临时用一下,若即若离,虚无缥缈,若有若无
- 表示一种使用关系,一个类需要借助另一个类来实现功能
- 一般是一个类使用另一个类做为参数使用,或作为返回值
空心菱形-聚合|实心菱形-组合
- 菱形就是一个盛东西的器皿(例如盘子)
- 聚合:代表空器皿里可以放很多相同东西,聚在一起(箭头方向所指的类)
- 组合:代表满器皿里已经有实体结构的存在,生死与共

- 整体和局部的关系,两者有着独立的生命周期,是has a的关系
- 弱关系
- 消极的词:弱-空

- 整体与局部的关系,和聚合的关系相比,关系更加强烈
- 两者有相同的生命周期, contains-a的关系
- 强关系
- 积极的词:强-满
常见数字表达及含义,假设有A类和B类,数字标记在A类侧
- 0..1:0或1个实例.
- 0..*:0或多个实例.
- 1..1:1个实例.
- 1:只能有一个实例.
- 1..*:至少有一个实例.
类图详解

类图从上到下包含:
- 类名:抽象类使用斜体表示,接口用<>表示
- 属性:访问权限+属性名:属性类型
+:public-:private#:protected~:default- 下横线表示static
- 方法: 访问权限+方法名:返回值类型
+:public-:private#:protected~:default- 下横线表示static
- 斜体表示抽象方法
典型的类图表示:

UML时序图
Sequence Diagram :是显示对象之间交互的图,这些对象是按时间顺序排列的。
时序图中包括的建模元素主要有:
- 对象(Actor)
- 生命线(Lifeline)
- 控制焦点(Focus of control)
- 消息(Message)等
典型的一个时序图如下:

Java设计模式(一)UML总结的更多相关文章
- 图解Java设计模式之UML类图
图解Java设计模式之UML类图 3.1 UML基本介绍 UML图 UML类图 3.1 UML基本介绍 1)UML – Unified modeling language UML(统一建模语言),是一 ...
- Java设计模式精讲之UML急速入门
简单记录 - 慕课网 - Java设计模式精讲 Debug方式+内存分析 文章目录 第2章 UML急速入门 2-1.UML简单入门 UML定义 UML特点 UML 2.2分类 UML类图 理解泛化.实 ...
- Java设计模式(二) 工厂方法模式
本文介绍了工厂方法模式的概念,优缺点,实现方式,UML类图,并介绍了工厂方法(未)遵循的OOP原则 原创文章.同步自作者个人博客 http://www.jasongj.com/design_patte ...
- Java设计模式---工厂模式(简单工厂、工厂方法、抽象工厂)
工厂模式:主要用来实例化有共同接口的类,工厂模式可以动态决定应该实例化那一个类.工厂模式的形态工厂模式主要用一下几种形态:1:简单工厂(Simple Factory).2:工厂方法(Factory M ...
- 浅析JAVA设计模式之工厂模式(一)
1 工厂模式简单介绍 工厂模式的定义:简单地说,用来实例化对象,取代new操作. 工厂模式专门负责将大量有共同接口的类实例化.工作模式能够动态决定将哪一个类实例化.不用先知道每次要实例化哪一个类. 工 ...
- JAVA设计模式总结之23种设计模式
上一篇总结了设计模式的六大原则<JAVA设计模式总结之六大设计原则>,这一篇,正式进入到介绍23种设计模式的归纳总结. 一.什么是设计模式 ...
- 折腾Java设计模式之建造者模式
博文原址:折腾Java设计模式之建造者模式 建造者模式 Separate the construction of a complex object from its representation, a ...
- 折腾Java设计模式之中介者模式
博文原址:折腾Java设计模式之中介者模式 中介者模式 中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性.这种模式提供了一个中介类,该类通常处理不同类之间的通信,并 ...
- 折腾Java设计模式之备忘录模式
原文地址:折腾Java设计模式之备忘录模式 备忘录模式 Without violating encapsulation, capture and externalize an object's int ...
- 折腾Java设计模式之状态模式
原文地址 折腾Java设计模式之状态模式 状态模式 在状态模式(State Pattern)中,类的行为是基于它的状态改变的.这种类型的设计模式属于行为型模式.在状态模式中,我们创建表示各种状态的对象 ...
随机推荐
- HDU_4734_数位dp
http://acm.hdu.edu.cn/showproblem.php?pid=4734 模版题. #include<iostream> #include<cstdio> ...
- php 全局变量 预定义变量
//$GLOBALS 引用全局作用域中可用的全部变量 $_SERVER['SERVER_ADDR'] 返回运行脚本所在服务器的IP地址 $_SERVER['SERVER_NAME'] 返回运行脚本所在 ...
- 学习CSS之用CSS实现时钟效果
一.机械时钟 1.最终效果 用 CSS 绘制的机械时钟效果如下: HTML 中代码结构为: <body> <div class="clock"> ...
- Ikuai路由安装及简单配置 v1.0
第一部分:创建虚拟机: 1.点击创建新的虚拟机 2.选择自定义模式创建(选择经典模式会更友好一些),然后点击下一步 3.下图内容不用管,直接点击下一步: 4.这里是选择安装系统路径.在这里我们 ...
- CentOS6.5下部署SVN
查看系统版本,安装SVN软件及创建目录 [root@A-linux ~]# uname -r 2.6.32-431.el6.x86_64 [root@A-linux ~]# cat /etc/redh ...
- 7个有用的JS技巧
就如其他的编程语言一样,JavaScript也具有许多技巧来完成简单和困难的任务. 一些技巧已广为人知,而有一些技巧也会让你耳目一新. 让我们来看看今天可以开始使用的七个JavaScript技巧吧! ...
- C语言switch中case后跟随break语句
1.case后面的常量表达式实际上只起语句标号作用,而不起条件判断作用,即“只是开始执行处的入口标号”.因此,一旦与switch后面圆括号中表达式的值匹配,就从此标号处开始执行:而且执行完一个case ...
- 献给即将35岁的初学者,焦虑 or 出路?
导言:“对抗职场“35 岁焦虑”,也许唯一的方法是比这个瞬息万变的商业社会跑得更快!” 一直以来,都有许多人说“程序员或测试员是个吃青春饭的职业”,甚至还有说“35 岁混不到管理就等于失业”的言论. ...
- SparkShuffle机制
在早期版本的Spark中,shuffle过程没有磁盘读写操作,是纯内存操作,后来发现效率较低,且极易引发OOME,较新版本的Shuffle操作都加入了磁盘读写进行了改进. 1.未经优化的HashShu ...
- 痞子衡嵌入式:ARM Cortex-M内核那些事(6)- 系统堆栈机制
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是ARM Cortex-M堆栈机制. 今天给大家分享的这篇依旧是2016年之前痞子衡写的技术文档,花了点时间重新编排了一下格式.前面痞子衡 ...