qiuyadong's Homepage

设计模式大汇总


签到32!

学习总结

不经一番寒彻骨,怎得梅花扑鼻香。

七大设计原则

  • 开闭原则
    • 总结:对修改关闭,对扩展开放
    • 目的:保证系统健壮性,减少维护带来的风险
  • 单一职责原则
    • 总结:一个类只做一类事情,负责一个职责
    • 目的:保证类的单纯性,也方便使用
  • 接口隔离原则
    • 总结:一个接口只负责一种事情,负责一种职责
    • 目的:保证接口的单纯性,高聚合低耦合
  • 迪米特原则
    • 总结:不该知道的最好别知道
    • 目的:提高类的封装性,复用
  • 里式替换原则
    • 总结:涉及到子类重写父类的方法时,不要影响功能的含义
    • 目的:避免使用的理解难度、防止继承泛滥
  • 依赖倒置原则
    • 总结:要依赖接口编程,不要依赖具体实现
    • 目的:提高程序的扩展和升级
  • 合成复用原则
    • 总结:不使用继承,而是用组合或者复用来实现功能
    • 目的:降低类的复杂性,降低代码的耦合性

创建型设计模式

  • 单例
    • 总结:公司只能有一个CEO
    • 目的:保证唯一性及其合法性
  • 原型
    • 总结:六耳猕猴去做事
    • 目的:复杂的对象拷贝出来另有它用,高效的创建对象
  • 工厂方法
    • 总结:创建出产品的工厂来构建复杂产品,产品标准化
    • 目的:从关注产品,到关注创造产品的工厂,封装细节
    • 通常,工厂会被设计成单例,是一种特殊的模板方法
  • 抽象工厂
    • 总结:关注操作产品等级和产品结构,理解为品牌
    • 目的:从关注创造产品的工厂到品牌,构建复杂的产品等级和结构
  • 建造者
    • 总结:注重构建形式,在低配的形式上差异化增加配置
    • 目的:更加灵活的构建对象及关注配置

结构型设计模式

  • 装饰者
    • 总结:俄罗斯套娃,每装饰一次都是同样的类型,但有不同的结果,同宗同源
    • 目的:灵活的扩展功能
    • 关注给对象添加方法
  • 门面
    • 总结:打开这扇门,进入新世界
    • 目的:系统分层,调用子系统的入口
  • 组合
    • 总结:同心同德、你我彼此不分
    • 目的:对整体和局部的调用使用对客户透明调用,如目录、树型结构
  • 享元
    • 总结:公共厕所,优化资源配置
    • 目的:稀缺资源合理使用
  • 桥接
    • 总结:万物互联
    • 目的:不使用继承,将两个独立体系关联起来
  • 代理
    • 总结:交给专业人士我放心
    • 目的:保护和增强
    • 关注对对象的访问,有时候不能直接访问
  • 适配器
    • 总结:适应自己的改变
    • 目的:为了满足需要,不得已的改变,转换和兼容
    • 适配的双方可以有不同的接口,可以

行为型设计模式

  • 访问者
    • 总结:远看成岭侧成峰,远近高低各不同
    • 目的:不同的访问者同样的数据给出不同的结果
  • 观察者
    • 总结:你的事情不只是你的事情
    • 目的:灵活的增加事件处理机制
  • 状态
    • 总结:不同的状态不同的认识
    • 目的:根据不同的状态改变行为
  • 委派
    • 总结:专人做专事
    • 目的:全权代理某件事,关注结果
    • 关注分发和调度
  • 模板方法
    • 总结:按程序办事
    • 目的:复用和讲究程序
  • 备忘录
    • 总结:备份的重要性
    • 目的:方便回到某个状态
  • 命令
    • 总结:一支穿云箭,千军万马来相见
    • 目的:将某事情拆分为请求和相应,关注请求本身
  • 中介者
    • 总结:班长,她的联系方式是?
    • 目的:将网状关系转换成星性,降低调用的复杂性
  • 迭代器
    • 总结:任何课程的学习方法基本一样
    • 目的:将数据和数据的访问抽象一个统一接口,方便使用者访问使用
  • 策略
    • 总结:白猫黑猫,抓住老鼠都是好猫
    • 目的:客户选择不同的策略,结果都是一样的
    • 通常会接收工厂创建的对象,关注策略能否相互替代
  • 责任链
    • 总结:任务审批流
    • 目的:对同一个请求灵活的增加和删除不同的关注和处理
  • 解释器
    • 总结:我的方言
    • 目的:解释一中文法输出统一的结果


Comments