• 2019-02-13-design-pattern-creation

  • 2019-02-14-design-pattern-structural

  • 2019-02-19-design-pattern-behavioral

  • decorator design pattern

  • 2016-10-17-head-first-design-patterns

  • 创建型

    • 工厂 Factory Factory
      • 创建对象时不暴露实例化逻辑,通过接口,创建新对象
        • 动态对象创建,根据特定输入和条件动态创建
        • 松耦合,客户端不直接依赖于具体的类,而是依赖抽象,接口或超类
        • 典型使用场景,支付网关,数据库链接
    • 单例 Singleton java singleton
      • 确保只有一个实例
        • 全保唯一的入口
        • 确保资源只被创建一次
    • Builder
      • 创建复杂对象
    • Prototype
      • 复制现有对象(原型)创建新对象
        • 创建新对象的成本高于复制现有对象时
  • 结构型 Structural Patterns

    • Bridge
      • 将抽象和实现分离 ?
      • 允许抽象和实现独立扩展 ?
    • Adapter
      • 允许将一个类的接口用作另外一个接口,使得原本不兼容的类可以协同工作
      • 重用现有的功能而不修改原来代码
    • Decorator
      • 动态地向对象添加额外的职责
        • 在不修改现有代码的基础上添加新的功能
        • 动态组合多种行为
    • Proxy
      • 控制对原始对象的访问
      • 请求达到原始对象之前或之后执行额外的操作
    • Composite
      • 将对象组合成树结构,表示部分,整体层次
    • Facade
      • 为子系统的一组接口提供统一的高层接口,提供简单的入口来访问复杂系统
    • Flyweight 享元
      • 共享尽可能多的数据来最小化内存使用并提升性能
      • 减少内存使用
  • 行为

    • Strategy
      • 定义一系列算法,将每个算法封装起来,并使其可互换
    • Interpreter
    • Command
      • 将请求转换为独立的对象
    • Observer
      • 定义对象之间的一对多依赖关系,当一个对象改变状态时,依赖的对象会收到通知并自动更新
        • 对象之间的发布 订阅关系
    • Iterator
      • 允许遍历集合元素而不暴露其底层表示
        • 提供统一的方式访问集合元素
    • Template
    • Vistor