小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
虽然设计模式很多,但在软考往年的习题中所遇到的设计模式也就那么几种。为了巩固复习,我们来学习一下相关设计模式的内容吧。
创建型模式
创建型模式(Creational Pattern),对类的实例化过程进行了抽象,将对象的创建和使用分离。单一职责原则;降低系统耦合度,使用者不需要关注对象创建细节,由相关工厂来完成;
单例模式(Singleton):保证类只有一个实例,并提供一个访问它的全局访问点
- 举例:浏览器中只有一个唯一的主窗口,其他标签页是从主窗口中开启的.
- 关键字:一个实例
原型模式(Prototype):用于创建重复的对象,同时保证性能。又称拷贝对象模式,省略了构造过程。
- 关键字:创建重复对象
结构型模式
结构型模式(Structural Pattern),关注如何将现有类或对象组织在一起,形成更加强大的结构;
可分为两种:类结构模式和对象结构模式;前者采用继承机制来组织接口和类,后者采用组合或聚合来组合对象;组合聚合关系比继承关系耦合度低,满足合成复用原则,所以对象结构型模式具有更大的灵活性。
适配器模式(Adapter)将一个类的借口转换成用户希望得到的另一种借口。它使原本不相容的借口得以协同工作。
- 关键字:接口转换
- 类似于电源适配器等作用,用以适配接口。
类适配器模式:
对象适配器模式
桥接模式(Bridge):将抽象与实现分离,使它们可以独立变化。
- 将类的不同属性,按照属性维度拆分到不同的类中,每个类负责一个属性的变化
- 关键字:继承树拆分
装饰模式(Decorator):在不改变现有对象结构的情况下,动态地给对象增加一些额外功能(职责);
- 关键字:附加职责
行为型模式
行为型模式,用于描述程序在运行时复杂的流程控制;
描述多个类或对象之间,如何相互协作共同完成单个对象无法完成的任务;涉及算法与对象间职责的分配;
行为型模式可分为:类行为模式和对象行为模式,前者采用继承机制来实现类间分派行为,后者采用组合或聚合在对象间分配行为。
观察者模式(Observer):定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象,在状态发生变化时,会通知所有观察者。
- 一个状态改变通知所有观察者
状态模式(State):允许一个对象在其内部状态改变时改变它的行为。
- 状态变成类
策略模式(Strategy):定义一系列算法将其封装,使其之间可以相互替换,算法独立于使用它的用户而变换。
- 多方案切换