设计模式---总论

1 常见误解

一开始写代码就应该使用设计模式,而没有思考自己应该在写代码的时候先自己尝试一下.这不仅是错误的,而且违背了设计模式的本质. 设计模式首先要有一个方案,然后在这个方案的基础上发现更好地方案.

共计16个模式.

2 创建型模式

介绍处理对象创建的设计模式

创建型模式,目标是当创建对象(python中通过__init__()函数实现)不方便时提供更好的方式.

2.1 工厂模式

介绍如何使用工厂设计模式(工厂方法和抽象工厂)来初始化对象,并说明与直接实例化对象相比,使用工厂设计模式的优势.

描述:客户端可以请求一个对象,而无需知道这个对象来自哪里;也就是说,使用哪个类来生成这个对象.
思想:简化对象的创建.
好处:基于一个中心化函数创建对象,更容易追踪创建了哪些对象.通过将创建对象的代码和适用对象的代码解耦,工厂能降低应用维护的复杂度.
形式:工厂形式有2种:

  1. 工厂方法(Factory Method),他是一个函数(或者说方法),对不同的输入参数返回不同的对象;
  2. 抽象工厂,他是一组用于创建一系列相关事物对象的工厂方法.

2.2 建造者模式

对于由多个相关对象构成的对象,介绍如何简化其创建过程.

2.3 原型模式

介绍如何通过完全复制(克隆)一个已有对象来创建一个新对象

3 结构型模式

介绍处理一个系统中不同实体(类,对象等)之间关系的设计模式.

3.1 适配器模式

介绍如何以最小的改变实现已有代码和外来接口(例如,一个外部代码库)的兼容.

3.2 修饰器模式

介绍如何无需使用继承也能增强对象的功能.

3.3 外观模式

介绍如何创建单个入口点来隐藏系统的复杂性.

3.4 享元模式

介绍如何通过复用一个对象池中的对象来提高内存利用率以及应用性能.

3.5 模型-视图-控制器模式)(MVC)

介绍如何避免业务逻辑与用户界面代码的耦合,提高应用的可维护性.

3.6 代理模式

介绍如何增加额外的保护层,提高应用的安全性.

4 行为型模式

介绍处理系统实体之间通信的设计模式.

4.1 责任链模式

介绍如何向多个接收者发送请求.

4.2 命令模式

介绍如何让应用能够取消已经执行的操作.

4.3 解释器模式

介绍如何基于python创建一种简单的语言,便于领域专家使用,而无需学习python编程.

4.4 观察者模式

介绍如何在对象发生变化时,通知已注册的相关者.

4.5 状态模式

介绍如何创建一个状态机以对问题进行建模,并说明这种技术的优势.

4.6 策略模式

介绍如何基于某些输入标准(例如,元素大小)在程序运行期间从多个可选算法中选择一个.

4.7 模板模式

介绍如何区分一个算法的通用和不通用部分,以避免不必要的代码复制.

posted on 2019-06-25 16:30  流云封心  阅读(35)  评论(0)    收藏  举报