设计模式-概述

概述

设计模式时一套被反复使用、经过分类编目的、代码设计经验的总结,使用设计模式可以提高代码的可靠性、可重用性等。

目录

  • 设计模式要素
  • 设计模式分类
    • 按目的
    • 按范围
  • GOF设计模式

设计模式要素

  • 模式名称
  • 争对的问题
  • 解决方案
  • 效果

设计模式分类

按目的

  • 创建型模式
  • 结构型模式
  • 行为型模式

按范围

即模式是用于处理类之间的关系还是对象之间的关系

  • 类模式:处理类和子类的关系,关系通过继承而建立,是静态的
  • 对象模式:关系在运行时建立,是动态的

在系统设计时,我们应尽量用关联关系取代继承关系。

GOF设计模式

模式类别 模式名称 模式说明
创建型模式 抽象工厂模式 提供了一个创建一系列相关或互相依赖对象的接口,无须指定具体类
建造者模式 将一个复杂对象的构建和表示分离,用同样的构建过程创建不同的表示
工厂方法模式 将类的实例化操作延迟到子类中完成,由子类决定实例化哪一个类
原型模式 通过给出一个原型对象来指定要创建的对象类型,然后复制原型来创建出更多的同类对象
单例模式 确保系统中某一个类只有一个实例,而且自行实例化向整个系统提供该实例
结构型模式 适配器模式 将一个接口转换成客户希望的另一个接口,从而实现兼容
桥接模式 将抽象部分和它的实现部分分离,让它们可以独立变化
组合模式 通过组合多个对象形成树形结构以表示"整体-部分"的结构层次
装饰模式 动态地给一个对象增加一些额外的职责
外观模式 为复杂子系统提供一个统一简单的入口
享元模式 通过共享技术有效地支持大量细粒度对象的复用
代理模式 给某一对象提供代理,由代理者控制实际目标对象
行为型模式 责任链模式 请求发送者和接收者连接成一条链,沿着链传递请求
命令模式 将请求封装为对象,使得请求调用者和请求接收者解耦
解释器模式 描述如何为语言定义一个文法,如何表示以及解释这些句子
迭代器模式 提供一种方法聚合对象,而不暴露对象的内部表示
中介者模式 通过中介对象来封装一系列的对象交互,使得各个对象间不需要显式地相互引用,从而解耦
备忘录模式 不破坏封装的前提下,捕获一个对象的内部状态,并在外部保存状态,后续可以将该对象恢复到原状态
观察者模式 定义了对象间一种一对多依赖的关系,一个对象改变时,通知观察它的对象做出相应改变
状态模式 允许一个对象在其内部状态改变时改变它的行为
策略模式 定义一系列算法,并算法封装在类中,可以交互替换着给客户使用
模板方法模式 定义一个操作中算法的股价,将其余步骤延迟到子类中去自定义
访问者模式 表示一个作用于某对象结构中各元素的操作,使得用户在不改变各元素类的前提下定义作用于这些元素的新操作

你可能感兴趣的:(设计模式,设计模式,原型模式,笔记)