Java设计模式精讲—慕课网—课程笔记1
1 课程导学
- 学习方式:
设计模式定义 -> 设计模式应用 -> 源码解析 -> 系统学习设计模式; - 动态递进式讲解(场景 – UML - 代码);
采用Debug方式及内存分析;
更容易理解抽象的设计模式;
JDK及热门开源框架解析;
领略设计模式的妙用技巧; - 课程安排:
UML入门(UML基础、UML类图、UML时序图、UML类关系、UML记忆技巧);
7大设计原则(开闭原则、依赖倒置原则、单一职责原则、接口隔离原则、迪米特原则、里氏替换原则、合成复用原则);
设计模式 – 创建型模式(工厂方法模式、抽象工厂模式、建造者模式、单例模式、原型模式);
设计模式 – 结构型模式(适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式);
设计模式 – 行为型模式(策略模式、观察者模式、责任链模式、备忘录模式、模板方法模式、迭代器模式、中介者模式、命令模式、访问者模式、解释器模式、状态模式);
2 UML急速入门
2.1 本章导航
- UML定义:统一建模语言(Unified Modeling Language);
非专利的第三代建模和规约语言; - UML特点:
UML是一种开放的方法;
用于说明、可视化、构建和编写一个正在开发的面向对象的、软件密集系统的制品的开放方法;
UML展现了一系列最佳工程实践,这些最佳实践在对大规模、复杂系统进行建模方面,特别是在软件架构层次已经被验证有效; - UML2.2分类:
结构式图形:强调的是系统式的建模;
行为式图形:强调系统模型中触发的事件;
交互式图形:属于行为式图形子集合,强调系统模型中资料流程;
一共定义了14种图示:
结构式图形:静态图(类图,对象图,包图),实现图(组件图,部署图),剖面图,复合结构图;
行为式图形:活动图,状态图,用例图;
交互式图形:通信图,交互概述图(UML2.0),时序图(UML2.0),时间图(UML2.0); - UML类图
Class Diagram:用于表示类、接口、实例等之间相互的静态关系;
虽然名字叫类图,但类图中并不只有类,包括权限、属性、方法等; - 记忆技巧:
UML箭头方向:子类指向父类;(只有知道对方信息时才能指向对方)
实线继承,虚线实现;(空心三角箭头:继承或实现,虚线无实体)
实线关联,虚线依赖;(<>箭头)
实心菱形组合,空心菱形聚合;(生命周期不一定,弱关系;生命周期一致,强关系) - 常见数字表达及含义,假设有A类和B类,数字标记在A类侧:
0…1: 0或1个实例;
0…* : 0或多个实例;
1…1: 1个实例;
1 : 1个实例;
1…*: 至少有1个实例; - UML时序图
Sequence Diagram:显示对象之间交互的图,对象按时间顺序排列;
建模元素主要有对象Actor、生命线Lifeline、控制焦点Focus of control、消息Message等;
2.2 UML类图讲解
- 第一行:类名(抽象类:斜体;接口:尖括号+字母interface 或 棒棒糖表示法);
第二行:类的属性;
第三行:类的行为; - 权限:+public,-private,#protected,无(~)default;
冒号后面:类型/返回值;
斜体:抽象类;
下划线:static;