设计模式及其使用场景(设计模式模板模式1---重构获得模式Refactoring)

设计模式及其使用场景(设计模式模板模式1---重构获得模式Refactoring)(1)

GOF-23 模式分类

从目的来看:

创建型(Creational)模式:将对象的部分创建工作延迟到子类或者其他对象,从而应对需求变化为对象创建时具体实现引来的冲击。

结构型(Structural)模式:通过类继承或者对象组合获得更灵活的结构,从而应对需求变化为对象的结构带来的冲击。

行为型(Behavioral)模式:通过类继承或者对象组合来划分类与对象间的职责,从而应对需求变化为多个交互的对象带来的冲击。

从范围来看:
  • 类模式处理类与子类的静态关系。
  • 对象模式处理对象间的动态关系。

从封装变化角度对模式分类

  • 组件协作:

Template Method(模板)

Strategy(策略)

Observer/Event(观察者)

  • 单一职责:(解决类创建过程中单一职责)

Decorator(装饰者)

Bridge(桥接)

  • 对象创建:(解决对象创建过程中的依赖关系)

Factory Method(工厂)

Abstract Factory(抽象工厂)

Prototype(原型)

Builder(建造者)

  • 对象性能:

Sigleton(单例)

Flyweight(享元)

  • 接口隔离:

Facade(外观)

Proxy(代理)

Mediator(中介)

Adapter(适配器)

  • 状态变化:

Memento(备忘录)

State(状态)

  • 数据结构:

Composite(组合模式)

Iterator(迭代器)

Chain of Resposibility(责任链)

  • 行为变化:

Command(命令)

Visitor(访问者)

  • 领域问题:

Interpreter(解释)

重构获得模式 Refactoring to Patterns

面向对象设计模式 是“好的面向对象设计”,所谓“好的面向对象设计”指是哪些可以满足“应对变化,提高复用“的设计。

现代软件设计的特征是“需求的频繁变化”。设计模式的要点是“寻找变化点,然后在变化点处应用设计模式,从而来更好的应对需求的变化”。“什么时候、什么地点应用什么设计模式”比“理解设计模式结构本身"更为重要。

设计模式的应用不宜先入为主,一上来就使用设计模式是对设计模式的最大误用。没有一步到位的设计模式。敏捷软开发实践提倡的“Refactoring to Patterns”是目前普遍公认的使用设计模式的方法。

需求的频繁变化---》寻找变化点---》在变化点处应用设计模式。

什么时候、什么地点用设计模式比理解设计模式更重要

阶段1:没有模式--》阶段2:一上来就是用设计模式---》阶段3:。。。

Refactoring to Patterns 重构与模式

重构----改善既有代码的设计

设计模式及其使用场景(设计模式模板模式1---重构获得模式Refactoring)(2)

重构关键技法

  • 静态->动态(经典)
  • 早绑定->晚绑定
  • 继承->组合
  • 编译时依赖->运行时依赖
  • 紧耦合->松耦合

设计模式及其使用场景(设计模式模板模式1---重构获得模式Refactoring)(3)

理解这些技法比理解某移动模式重要的多。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页