- 概念引入:
- 软件开发分为高层模式、低层模式。
- 高层模式:体系结构模式(即架构模式):软件体系结构的风格,作为软件设计中的高层决策。
- 低层模式:设计模式(
Design Pattern
)。
- 软件开发分为高层模式、低层模式。
- 设计模式:
- 概念: 是一套被反复使用,多数人知晓的,经过分类编目的,代码设计经验的总结。
- 目的: 为了提高代码的可重用性,让代码更容易被他人理解,并保证代码的可靠性,编码实现工程化。
- 优点: 在开发中采用他人成功解决方案,可降低分析、设计、实现的难度,使系统具有更好的可复用性、灵活性。
- 总结:
1. 设计模式主要关注软件系统的设计,与具体的实现语言无关。
2. 设计模式已广泛应用于面向对象系统的设计和开发,成为面向对象领域的一个重要组成部分。
3. 通过代码模板,实现复用性。
4. 模式是指从某个具体的形式中得到的一种抽象,在特殊的非任意性的环境中,该形式不断地重复出现。
5. 不同的模式之间有联系,同时也有各自的优缺点,实际应用时应权衡利弊,达到真正优质的设计模式。
- 设计模式的组成: 模式名称、问题、解决方案、效果4个基本成分;
- 模式名称: 描述一个设计问题、它的解法和效果,通常由一至两个词组成。
- 问题: 问题告诉人们什么时候要使用设计模式、解释问题及其背景。问题陈述往往用强制条件集来表示,同时强制条件的详细讨论是问题陈述的重要部分。
- 解决方案: 作为描述设计的基本要素:它们的关系、各自的任务以及相互之间的合作;解决方案针对的是抽象化问题;
- 效果: 效果描述应用设计模式后的结果和权衡。
-
设计模式的描述: 参考模板
- 模式名称和分类:模式名称和一个简短的摘要。
- 目的:描述该设计模式的用处、基本原理、目的、针对问题。
- 别称:
- 动机:问题的解决方案,以及模式中的类和对象的结构如何解决问题。
- 应用:即应用场景。
- 结构:用对象模式对本模式的图像表示。
- 成分:组成本设计模式的类和对象及它们的职责。
- 合作:成分间如何合作实现它们的任务。
- 效果:该模式如何支持它的对象
- 实现:在实现本模式的过程中,需注意哪些缺陷、线索或者技术;
- 例程序代码:说明如何用
Java
或其他语言来实现该模式的代码段。 - 已知的应用:现实中系统中使用该模式的案列。
- 相关模式:与本模式相关的一些其他模式,及它们的区别,本模式是否与其他模式混用。
- 设计模式的分类:
- 根据目的和用途不同,设计模式分为创建型(
Creational
)模式、结构式(Structural
)模式、行为型(Behavioral
)模式三种。 - 创建型(Creational)模式: 对类的实例化过程进行抽象,使软件模板做到与对象的创建和组织无关。
- 工厂方法(
Factory method
):又称为虚拟器构造器(Virtual Constructor
)模式或多态模式,属于类的创建型模式。 - 抽象工厂(
Anstract factory
):又称为Kit
模式。 - 原型(
Prototype
)模式: - 单例(
Singleton
)模式: - 建造者(
Builder
)模式:
- 工厂方法(
- 结构化模式: 将类或对象结合在一起,用于形成更大的结构。
- 适配器(
Adapter
)模式: - 桥接(
Bridge
)模式: - 组合(
Composite
)模式: - 装饰(
Decorator
)模式: - 外观(
Facade
)模式: - 享元(
Flyweight
)模式: - 代理(
Proxy
)模式:
- 适配器(
- 行为型模式: 对在不同的对象之间划分责任和算法的抽象化,不仅是关于类和对象,而且关于二者之间的相互作用。
- 职责链(
Chain of Responsiblity
)模式: - 命令(
Command
)模式: - 解释器(
Interpreter
)模式: - 迭代器(
Iterator
)模式: - 中介者(
Mediator
)模式: - 备忘录(
Memento
)模式: - 观察者(
Observer
)模式: - 状态(
State
)模式: - 策略(
Strategy
)模式: - 模板方法(
Template Method
)模式: - 访问者(
Visitor
)模式:
- 职责链(
- 根据目的和用途不同,设计模式分为创建型(