软考题目口诀
类模型 | 公司模姐 |
结构型设计模式 | 四桥组装外箱带 |
一、创建型模式5种
(一)类模式
1、工厂方法模式*(工厂模式)(*的是以前软考没考过的) Factory Method
一个类希望由它的子类来指定它创建的对象
(二)对象模式
1、抽象工厂模式 Abstract Factory
意图:
提供一个创建一系列相关或相互依赖的对象的接口,而无需指定他们具体的类
适用性:
- 一个系统要由多个产品系列中的一个来配置对象时
- 当一个系统应该独立于它的产品创建、构成和表示时
- 当要强调一系列相关的产品对象的设计以便进行联合使用时
2、原型模式 Prototype
- 一个类的实例只能有几个不同状态组合中的一种
- 原型模式创建对象的速度非常快
3、单例模式* Singleton
4、构建器模式 Builder
- 构建与表示分离
- 当创建复杂对象的算法应该独立于该对象的组成部分,及其装配方式
- 当构造过程必须允许被构造的对象有不同的表示时
二、结构型模式7种
(一)类模式
1、适配器模式 Adapter
- 适配器模式既是类模式又是对象模式
- 将一个对象的接口包装成客户希望的另一个接口
(二)对象模式
1、桥接模式 Bridge
将抽象部分与实现部分分离,使它们可以独立的变化
2、组合模式 Composite
将对象组合成树形结构以表示“部分—整体”的层次结构,Composite使得用户对单个对象和组合对对象的使用具有一致性
将对象组合成树形结构,以表示部分和整体的关系
3、装饰模式 Decorator
动态地给一个对象添加一些格外的职责
4、外观模式 Facade
将一系列对象包装起来,以简化接口
5、享元模式 Flyweight
享元模式可以共享相同的对象,避免创建过多的对象实例,从而节省内存资源
6、代理模式* Proxy
- 提供与对象相同的接口,为一个对象提供代理,以控制对这个对象的访问
- 在需要比较通用和复杂的对象指针代替简单指针时
三、行为型模式11种
(一)类模式
1、模板方法模式* Template Method
2、解释器模式* Interpreter
(二)对象模式
1、职责链模式* Chain of Responsibility
- 想在不明确指定接收者的情况下向多个对象中的一个提交一个请求
- 有多个对象可以处理一个请求,在运行时刻自动确定由哪个对象处理
2、命令模式 Command
- 将请求封装成对象,从而可以使用不同的请求对客户进行参数化
- 在不同的时刻指定、排列和执行请求
3、迭代器模式* Iterator
访问一个聚合对象的内容,而无须暴露它的内部表示
4、中介者模式 Mediator
- 一个对象引用其他很多对象,并之间与这些对象通信,减少通信复杂度
- 用一个对象封装一系列对象的交互,使用户对象和组对象不需要显示的相互引用,从而解耦,而且可以单独改变他们之间的交互形式
5、备忘录模式 Memento
- 在不破坏封装性的前提下,捕获对象的内部状态并在对象之外保存,可以恢复到先前的状态
- 保存一个对象在某一时刻的状态,确保以后需要时能恢复到先前的状态
6、观察者模式 Observer
当一个对象状态改变时,所有依赖它的对象得到通知并自动更新
7、状态模式 State
允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类
- 一个对象的行为决定其状态,且必须在运行时,根据状态改变行为
- 一个对象在其内部改变时通过调用另一个类中的方法改这个类的行为,使这个对象看起来像修改了其他类
8、策略模式 Strategy
定义一系列算法,把它们一个个封装起来,并使它们可以互相替换。此算法可以使得算法可以独立于使用它的客户而变化
9、访问者模式 Visitor
需要对一个对象结构中对象进行很多不同的并且不相关的操作