跳至主要內容

《C++设计模式》视频_李建忠

LincZero大约 4 分钟

《C++设计模式》视频_李建忠

目录

设计模式分类与使用建议

GOF-23模式分类

  • 从目的来看(《设计模式:可复用面向对象》中的分类)

    • 分类中译设计模式
      创建型模式
      (Creational)
      5
      抽象工厂
      构建器(生成器)
      工厂方法
      原型
      单件(单例)
      Abstract Factory
      Builder
      Factory Method
      Prototype
      Singleton
      结构型模式
      (Structural)
      7
      适配器
      桥接模式
      组成
      装饰
      外观(门面)
      享元
      代理
      Adapter
      Bridge
      Composite
      Decorator
      Facade
      Flyweight
      Proxy
      行为型模式
      (Behavioral)
      11
      职责链
      命令
      解释器(解析器)
      迭代器
      中介者
      备忘录
      观察者
      状态
      策略
      模板方法
      访问者
      Chain of Responsibility
      Command
      Interpreter
      Iterator
      Mediator
      Memento
      Observer
      State
      Strategy
      Template Method
      Visitor
  • 从范围来看

    • 类模式:处理类与子类的静态关系(偏重继承方案)
    • 对象模式:处理对象间的动态关系(偏重组合方案)
  • 从封装变化角度对模式分类(《设计模式_李建忠视频》中的分类)(其中划掉部分表示比较少用或过时)

    • 分类中译设计模式目的分类
      组件协作模板方法
      策略模式
      观察者模式
      Template Method
      Strategy
      Observer/Event
      行为型
      单一职责装饰模式
      桥接模式
      Decorator
      Bridge
      结构型
      对象创建工厂模式
      抽象工厂
      原型模式
      构建器模式
      Factory Method
      Abstract Factory
      Prototype
      Builder
      创建型
      对象性能单件模式
      享元模式
      Singleton
      Flyweight
      创建型
      结构型
      接口隔离门面模式
      代理模式
      适配器
      中介者模式
      Facade
      Proxy
      Adapter
      Mediator
      结构型
      行为型
      状态变化状态模式
      备忘录模式
      State
      Memento
      行为型
      数据结构组合模式
      迭代器模式
      职责链模式
      Composite
      Iterator
      Chain of Responsibility
      结构型
      行为型
      行为变化命令模式
      访问器模式
      Command
      Visitor
      行为型
      领域问题解析器模式Interpreter行为型

重构 Refactoring to Patterns(学习建议)

  • 重构获得模式 Refactoring to Patterns(这里的 “重构” 特指 “重构代码”)
    • 面向对象设计是 “好的面向对象设计”,所谓 “好的面向对象设计” 是指那些可以满足 “应对变化”,提高复用性的设计
    • 现代软件设计的特征是 “需求的频繁变化”。设计模式的要点是 “寻找变化点”,然后在变化点应用设计模式,从而来更好地应对需求的变化。“什么时候、什么地点应用设计模式” 比 “理解设计模式结构本身” 更为重要
    • 设计模式的应用不宜先入为主,一上来就使用设计模式是对设计模式的最大误用。没有一步到位的设计模式。敏捷软件开发实践提倡的 “Refactoring to Patterns” 是目前普遍公认最好的使用设计模式的方法
  • 重构关键技法
    • 静态 --> 动态
    • 早绑定 --> 晚绑定
    • 继承 --> 组合
    • 编译时依赖 --> 运行时依赖
    • 紧耦合 --> 松耦合
  • 推荐书籍
    • 《重构——改善既有代码的设计》
    • 《重构与模式》

菜鸟教程中多出来的10种设计模式

  • 过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)
  • 空对象模式(Null Object Pattern)
  • MVC模式(Model-View-Controller(模型-视图-控制器))(话说中介者模式不是属于MVVM模式吗?)
  • 业务代表模式(Business Delegate Pattern)
  • 组合实体模式(Composite Entity Pattern)
  • 数据访问对象模式(Data Access Object Pattern)
  • 前端控制器模式(Front Controller Pattern)
  • 拦截过滤器模式(Intercepting Filter Pattern)
  • 服务定位器模式(Service Locator Pattern)
  • 传输对象模式(Transfer Object Pattern)