模式分类

GOF23模式分类

从目的来分:

创建型(Creational)模式:

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

结构型(Structural)模式:

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

行为型(Behavioral)模式:

通过类继承或者对象组合来划分类与对象的职责,从而应对需求变化为多个交互的对象带来的冲击

从范围来分:

类模式处理类与子类的静态关系

对象模式处理对象间的动态关系

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

组件协作:

现代软件专业分工之后的第一个结构是"框架与应用程序的划分","组件协作"模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是是二者之间协作时常用的模式

Template Method模板方法

Strategy策略模式

Observer/Event事件模式

单一职责:

类与类责任划分

Decorator

Bridge

对象创建:

对象创建依赖关系

Factory Method

Abstract Factory

Prototype

Builder

对象性能:

Singleton

Flyweight

接口隔离:

Facade

Proxy

Mediator

Adapter

状态变化:

Memento

State

数据结构:

Composite

Iterator

Chain of Responsibility

行为变化:

Command

Visitor

领域问题:

Interpreter

重构获得模式Refactoring to Patterns

面向对象设计模式是"好的面向对象设计"指可以满足"应对变化,提高复用"的设计

现代软件设计的特征是"需求的频繁变化"设计模式的要点是"寻求变化点"

在变化点点处应用设计模式,从而来更好的应对需求的变化","什么时候,什么地点应用设计模式"比"理解设计模式结构本身"更为重要

设计模式的应用不宜先入为主,一上来就使用设计模式,对设计模式的最大误用

没有一步到位的设计模式敏捷软件开发实践所提倡的"Refactoring to Patterns"是目前普遍公认的最好的使用设计模式的方法

重构的技法

静态 -> 动态

早绑定 -> 晚绑定

继承 -> 组合

编译时依赖 -> 运行时依赖

紧耦合 -> 松耦合

posted @ 2020-11-26 17:53  Jelle  阅读(188)  评论(0编辑  收藏  举报