• 抽象工厂模式是工厂方法模式的升级版本 工厂方法模式只有一个抽象产品类 而抽象工厂模式有多个 工厂方法模式的具体工厂类只能创建一个具体产品类的实例 而抽象工厂模式可以创建多个 案例 在上一章节工厂方法模式的基础上 将披萨的各种原料生产抽象成一
  • 代理模式 为另一个对象提供一个替身或者占位符以控制对这个对象的访问 这样做的好处是 可以在目标对象实现的基础上 增强额外的功能操作 即扩展目标对象的功能 代理需要做的 控制和管理访问 需要时可以扩展目标对象的功能 被代理的对象可以是远程的对
  • 当你想要让一个以上的对象有机会能够处理某个请求的时候 就可以使用责任链模式 责任链模式 将请求的发送和接收解耦 让多个接收对象都有机会处理这个请求 将这些接收对象串成一条链 并沿着这条链传递这个请求 直到链上的某个接收对象能够处理它为止 通
  • 把方法调用封装起来 调用此方法的对象不需要关心方法是怎么运行的 还可以重复使用这些封装来实现撤销 undo 案例 设计一个遥控器来控制不同类型的装置 比如热水器 空调 每个装置的具体步骤方法不一样 命令模式可以将 动作的请求者 从 动作的执
  • 设计原则 类应该对扩展开发 对修改关闭 装饰者可以在所委托被装饰者的行为之后加上自己的行为 以达到特定的目的 装饰者模式 动态地将责任附加到对象上 若要扩展功能 装饰者提供了比继承更有弹性的替代方案 装饰者和被装饰者必须是一样的类型 也就是
  • 在现实生活中 某些类具有两个或多个维度的变化且这多个维度都可能需要后期扩展 如图形既可按形状分 又可按颜色分 如何设计类似于 Photoshop 这样的软件 能画不同形状和不同颜色的图形呢 如果用继承方式 m 种形状和 n 种颜色的图形就有
  • 状态模式 允许对象在其内部状态改变时改变它的行为 对象看起来好像修改类它的类 状态模式是有限状态机 Finite State Machine 的一种实现方式 我们都知道 http请求报文由请求行 请求头 请求空行和请求体四部分组成 服务器在
  • 工厂 Factory 处理创建对象的细节 只负责创建对象 方便不同的对象需要时通过工厂来获取对象 简单工厂其实不是一种设计模式 反而比较像是一种编程习惯 但是由于经常被使用 有些开发人员把这个编程习惯误认为是 工厂模式 简单工厂模式 实例化
  • 当有语言要解释时 请使用解释器模式为语言创建解释器 解释器模式的核心是解释器类 在解释器模式中一般会定义两种解释器 终结符解释器 Terminal Expression Interpreter 终结符解释器用于解释语言中的基本单位 对应语法
  • 建造者模式又称生成者模式 该模式是一种创建型设计模式 能够分步骤创建复杂对象 该模式允许使用相同的创建代码通过不同的创建过程生成不同类型的对象 建造者模式 Builder 所构建的对象一定是庞大而复杂的 并且一定是按照既定的制造工序将组件组
  • 装饰者 不改变接口 但加入责任 适配器 将一个接口转换成另一个接口 外观 让接口更简单 外观模式 将一个或数个类的复杂的一切都隐藏在背后 只显露出一个干净美好的外观 外观模式提供了一个统一的接口 用来访问子系统中的一群接口 外观模式定义了一
  • 模式通常被一起使用 并被组合在同一个设计解决方案中 复合模式在一个解决方案中结合两个或多个模式 以解决一般或重复发生的问题 注 是为了解决一般或重复发生的问题 而不是简单的认为使用了多个模式就是复合模式 绝不要为了使用模式而使用模式 具体问