Java设计模式(二):UML 类图和概述
目录
- 一·UML类图
- 1.1 UML 基本介绍
- 1.2 UML 图
- 1.3 UML 类图
- 1.4 类图—依赖关系 ( Dependence)
- 1.5 类图—泛化关系(generalization)
- 1.6 类图—实现关系(Implementation)
- 1.7 类图—关联关系(Association)
- 1.8 类图—聚合关系(Aggregation)
- 1.9 类图—组合关系(Composition)
- 二·设计 模式概 述
- 2.1 掌握设计模式的层次
- 2.2 设计模式介绍
- 2.3 设计模式类型
一·UML类图
1.1 UML 基本介绍
1) UML——Unified modeling language UML (统一建模语言),是一种用于软件系统分析和设计的语言工具,它用 于帮助软件开发人员进行思考和记录思路的结果 2) UML 本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他 们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等,如下图:
3) 使用 UML 来建模,常用的工具有 Rational Rose , 也可以使用一些插件来建模,我这里使用的Eclipse的插件(AmaterasUML)
1.2 UML 图
画 UML 图与写文章差不多,都是把自己的思想描述给别人看,关键在于思路和条理,UML 图分类: 1) 用例图(use case) 2) 静态结构图:类图、对象图、包图、组件图、部署图 3) 动态行为图:交互图(时序图与协作图)、状态图、活动图
说明:
- 类图是描述类与类之间的关系的,是 UML 图中最核心的
- 在讲解设计模式时,我们必然会使用类图,为了让学员们能够把设计模式学到位,需要先给大家讲解类图
- 温馨提示:如果已经掌握 UML 类图的学员,可以直接听设计模式的章节
1.3 UML 类图
1) 用于描述系统中的类(对象)本身的组成和类(对象)之间的各种静态关系。 2) 类之间的关系:依赖、泛化(继承)、实现、关联、聚合与组合。 3) 类图简单举例
public class Person{ //代码形式->类图 private Integer id; private String name; public void setName(String name){ this.name=name; }public String getName(){ return name; }
}
1.4 类图—依赖关系 ( Dependence)
只要是在类中用到了对方,那么他们之间就存在依赖关系。如果没有对方,连编绎都通过不了。
public class PersonServiceBean { private PersonDao personDao;//类 public void save(Person person){} public IDCard getIDCard(Integer personid){} public void modify(){ Department department = new Department();
}
}
public class PersonDao{}
public class IDCard{} public class Person{}
public class Department{}
对应的类图:
小结
1) 类中用到了对方 2) 如果是类的成员属性 3) 如果是方法的返回类型 4) 是方法接收的参数类型 5) 方法中使用到
1.5 类图—泛化关系(generalization)
泛化关系实际上就是继承关系,他是依赖关系的特例
public abstract class DaoSupport{ public void save(Object entity){ }public void delete(Object id){ }
}public class PersonServiceBean extends Daosupport{
}
对应的类图
小结:
1) 泛化关系实际上就是继承关系 2) 如果 A 类继承了 B 类,我们就说 A 和 B 存在泛化关系
1.6 类图—实现关系(Implementation)
实现关系实际上就是 A 类实现 B 接口,他是依赖关系的特例
public interface PersonService { public void delete(Interger id); }public class PersonServiceBean implements PersonService { public void delete(Interger id){}
}
=>类图
1.7 类图—关联关系(Association)
1.8 类图—聚合关系(Aggregation)
基本介绍
聚合关系(Aggregation)表示的是整体和部分的关系,整体与部分可以分开。聚合关系是关联关系的特例,所 以他具有关联的导航性与多重性。 如:一台电脑由键盘(keyboard)、显示器(monitor),鼠标等组成;组成电脑的各个配件是可以从电脑上分离出来 的,使用带空心菱形的实线来表示:
应用实例
1.9 类图—组合关系(Composition)
基本介绍
组合关系:也是整体与部分的关系,但是整体与部分不可以分开。 再看一个案例:在程序中我们定义实体:Person 与 IDCard、Head, 那么 Head 和 Person 就是 组合,DCard 和 I Person 就是聚合。 但是如果在程序中 Person 实体中定义了对 IDCard 进行级联删除,即删除 Person 时连同 IDCard 一起删除,那 么 IDCard 和 Person 就是组合了.
应用案例
public class Person{ private IDCard card; private Head head = new Head(); }public class IDCard{} public class Head{}
对应的类图:
案例2
public class Computer { private Mouse mouse = new Mouse(); //鼠标可以和 computer 不能分离 private Moniter moniter = new Moniter();//显示器可以和 Computer 不能分离 public void setMouse(Mouse mouse) { this.mouse = mouse; }public void setMoniter(Moniter moniter) { this.moniter = moniter; }}
public class Mouse { }
public class Moniter { }
对应的类图:
二·设计 模式概 述
2.1 掌握设计模式的层次
1) 第 1 层:刚开始学编程不久,听说过什么是设计模式 2) 第 2 层:有很长时间的编程经验,自己写了很多代码,其中用到了设计模式,但是自己却不知道 3) 第 3 层:学习过了设计模式,发现自己已经在使用了,并且发现了一些新的模式挺好用的 4) 第 4 层:阅读了很多别人写的源码和框架,在其中看到别人设计模式,并且能够领会设计模式的精妙和带来的 好处。 5) 第 5 层:代码写着写着,自己都没有意识到使用了设计模式,并且熟练的写了出来。
2.2 设计模式介绍
1) 设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验,模式不是代码,而是某类问题的通 用解决方案,设计模式(Design pattern)代表了最佳的实践。这些解决方案是众多软件开发人员经过相当长的 一段时间的试验和错误总结出来的。 2) 设计模式的本质提高 软件的维护性,通用性和扩展性,并降低软件的复杂度。 3) <<设计模式>> 是经典的书,作者是 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides Design(俗 称 "四人组 GOF") 4) 设计模式并不局限于某种语言,java,php,c++ 都有设计模式.
2.3 设计模式类型
设计模式分为三种类型,共 23 种
1) 创建型模式:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式。 2) 结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 3) 行为型模式:模版方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、 解释器模式(Interpreter 模式)、状态模式、策略模式、职责链模式(责任链模式)。
注意:不同的书籍上对分类和名称略有差别
Java设计模式(二):UML 类图和概述相关推荐
- 图解Java设计模式之UML类图
图解Java设计模式之UML类图 3.1 UML基本介绍 UML图 UML类图 3.1 UML基本介绍 1)UML – Unified modeling language UML(统一建模语言),是一 ...
- java设计模式之UML③类图讲解多个类之间的关系
图来自大话设计模式 虚线和箭头指向依赖关系,也就是动物类依赖氧气类和水类 一般依赖关系是一个类使用另一个类作为参数使用 动物是一个父类 鸟继承动物 其中空心三角继承关系(箭头方向是子类指向父类) 实心 ...
- java设计模式之UML②类图讲解
类名 属性 行为 三大部分 +: 最大的权限 public -:最小的权限 private #:protected ~:默认的 default :后面 String int double 代表类型 斜 ...
- 23种常用设计模式的UML类图
23种常用设计模式的UML类图 本文UML类图参考<Head First 设计模式>(源码)与<设计模式:可复用面向对象软件的基础>(源码)两书中介绍的设计模式与UML图. 整 ...
- 【Java基础】UML类图及各种线代表的关系含义总结
文章目录 一.UML常见图 1.类图(Class Diagram) 2.对象图(Object Diagram) 3.时序图(Sequence Diagram) 二.UML类图线的概括 1.类(Clas ...
- java进阶之UML类图和时序图
目录 UML概述 UML图分类 类图和时序图 类图 类图概述 类图的结构 类图中的关系 时序图 时序图概述 组成元素 示例图 UML概述 统一建模语言(英语:Unified Modeling Lang ...
- 设计模式:UML类图
UML类图 一.UML基本介绍 UML--Unified modeling language UML (统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路 ...
- 从零开始单排学设计模式「UML类图」定级赛
阅读本文大概需要 3.5 分钟. 本篇是设计模式系列的开篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统. 所以现在打算重写,加上距离现在也有一段时间了, ...
- 从零开始单排学设计模式「UML类图」定级赛 1
阅读本文大概需要 3.5 分钟. 本篇是设计模式系列的开篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统. 所以现在打算重写,加上距离现在也有一段时间了, ...
最新文章
- 这次终于不再为 iptables 犯迷糊了!
- jvm内存模型及分配
- 聚焦2020年财报:进击的恒大汽车,“变态”的智能汽车
- 会议研讨 | TF45: 知识图谱新技术、新场景、新应用
- jenkins+svn+maven+ssh 部署配置详细记录
- Kaggle 注册手机号以获取GPU资源
- mysql 导入,导出数据库
- 【编程好习惯】使用sizeof减少内存操作失误
- 计算机组成原理白中英第四章,白中英计算机组成原理第四章答案.ppt
- win10背景显示计算机名,如何自定义Win10计算机的开始菜单背景和图片
- 小学计算机集体备课,信息技术集体备课总结
- javascript轮播图超详细
- 阿里云CTO王坚当选院士,高手的人生都是如此雷同:生命的信仰
- Ubuntu关机后自动重启问题的解决方案
- 监测 Windows 应用行为
- html的弯曲的虚线设置,Photoshop如何画出弯曲的虚线?
- Android开发12年高级工程师:作为 IT 行业的过来人,我想对你们说~(职场必看!!!)
- [编程题] 大富翁游戏(美团点评2017秋招)
- 当当网资深DBA:DB运维四大现代化的实现
- 模拟与数字电子技术【1】
热门文章
- Paradox of our times
- MATLAB 3D 动画制作(一)- 3D 图形设计
- ps照片处理下雪效果
- 南方电网招聘计算机专业吗,南方电网的招聘条件,你要注意这几点
- 3Ds Max Design2009与PhotoshopCS4建筑设计经典案例指导视频教程
- python数据分析实战-Python数据分析案例实战(慕课版)
- ie浏览器html图片兼容,解决webp图片格式IE浏览器不兼容性问题
- 计算机安全用电及注意事项,笔记本使用安全注意事项
- 同盾科技 智能语音 | 你不得不知道的战略布局
- python使用datetime并格式插入MySQL