设计模式笔记-概述

  |   0 评论   |   802 浏览

设计模式笔记-概述

1、什么是模式

模式是在特定环境下人们解决某类重复出现问题的一套成功或有效的解决方案。【A pattern is a successful or efficient solution to a recurring problem within a context】;
最早是建筑领域由Christopher Alexander提出;
软件领域模式提出是由Gang of Four,简称GoF,分别是Erich Gamma, Richard Helm, Ralph Johnson和John Vlissides四位著名软件工程学者;

2、软件模式(Software Patterns)

将模式的一般概念应用于软件开发领域,即软件开发的总体指导思路或参照样板。软件模式并非仅限于设计模式,还包括架构模式、分析模式和过程模式等,在软件开发生命周期的每一个阶段都存在着一些被认同的模式。
软件模式的基础结构主要由四部分构成:
1. 问题描述【待解决的问题是什么】
2. 前提条件【在何种环境或约束条件下使用】
3. 解法【如何解决】
4. 效果【有哪些优缺点】

3、设计模式(Design Patterns)

定义:设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解并且保证代码可靠性
设计模式是用于在特定的条件下为一些重复出现的软件设计问题提供合理的、有效的解决方案,它是软件模式的分支.
1995年, GoF将收集和整理好的23种设计模式汇编成 【Design Patterns: Elements of Reusable Object-Oriented Software】《设计模式:可复用面向对象软件的基础》一书;
狭义的设计模式是指GoF在《设计模式:可复用面向对象软件的基础》一书中所介绍的23种经典设计模式;

3.1设计模式的要素

1.模式名称(Pattern Name)
通过一两个词来描述模式的问题、解决方案和效果,以便更好地理解模式并方便开发人员之间的交流,绝大多数模式都是根据其功能或模式结构来命名的;

2.问题(Problem)
描述了应该在何时使用模式,它包含了设计中存在的问题以及问题存在的原因;

3.解决方案(Solution)
描述了一个设计模式的组成成分,以及这些组成成分之间的相互关系,各自的职责和协作方式,通常解决方案通过UML类图和核心代码来进行描述;

4.效果(Consequences)
描述了模式的优缺点以及在使用模式时应权衡的问题;

3.2常用设计模式

常用设计模式和使用频率
在GoF中23种设计模式中包含5种创建型设计模式、7种结构型设计模式和11种行为型设计模式.

创建型模式(Creational Pattern)

编号模式名称学习难度使用频率
1单例模式
Singleton Pattern
★☆☆☆☆★★★★☆
2简单工厂模式
Simple Factory Pattern
★★☆☆☆★★★☆☆
3工厂方法模式
Factory Method Pattern
★★☆☆☆★★★★★
4抽象工厂模式
Abstract  Factory Pattern
★★★★☆★★★★★
5原型模式
Prototype Pattern
★★★☆☆★★★☆☆
6建造者模式
Builder Pattern
★★★★☆★★☆☆☆

结构型模式(Structural Pattern)

编号模式名称学习难度使用频率
7适配器模式
Adapter Pattern
★★☆☆☆★★★★☆
8桥接模式
Bridge Pattern
★★★☆☆★★★☆☆
9组合模式
Composite Pattern
★★★☆☆★★★★☆
10装饰模式
Decorator Pattern
★★★☆☆★★★☆☆
11外观模式
Façade Pattern
★☆☆☆☆★★★★★
12享元模式
Flyweight Pattern
★★★★☆★☆☆☆☆
13代理模式
Proxy Pattern
★★★☆☆★★★★☆

行为型模式(Behavioral Pattern)

编号模式名称学习难度使用频率
14职责链模式
Chain of Responsibility Pattern
★★★☆☆★★☆☆☆
15命令模式
Command Pattern
★★★☆☆★★★★☆
16解释器模式
Interpreter Pattern
★★★★★★☆☆☆☆
17迭代器模式
Iterator Pattern
★★★☆☆★★★★★
18中介者模式
Mediator Pattern
★★★☆☆★★☆☆☆
19备忘录模式
Memento Pattern
★★☆☆☆★★☆☆☆
20观察者模式
Observer Pattern
★★★☆☆★★★★★
21状态模式
State Pattern
★★★☆☆★★★☆☆
22策略模式
Strategy Pattern
★☆☆☆☆★★★★☆
23模板方法模式
Template Method Pattern
★★☆☆☆★★★☆☆
24访问者模式
Visitor Pattern
★★★★☆★☆☆☆☆

为什么是24种模式? 简单工厂模式并不包含在GoF论述的23种设计模式中.

软件

评论

发表评论