设计模式-设计模式概述

来源:互联网 发布:淘宝答题秒杀辅助工具 编辑:程序博客网 时间:2024/03/28 20:13

序言

先通过本篇文章熟悉常见的设计模式概念、分类、设计原则等。


设计模式的来源

  • 每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,我们可以无数次地重用那些已有的成功的解决方案,无须再重复相同的工作。

  • 在软件开发生命周期的每一个阶段都存在着一些被认同的模式。

  • 设计模式用于在特定的条件下为一些重复出现的软件设计问题提供合理的、有效的解决方案。

  • GoF归纳的23种经典设计模式,根据用途不同将其分为:创建型(Creational) + 结构型(Structural) + 行为型(Behavioral)

    • 创建型:5种。主要用于描述如何创建对象

    • 结构型:7种。主要用于描述如何实现类或对象的组合

    • 行为型:11种。主要用于描述类或对象怎样交互以及怎样分配职责

    注:
    (1) 根据某个模式主要是用于处理类之间的关系还是对象之间的关系,设计模式还可以分为类模式和对象模式
    (2) 简单工厂模式虽然不属于GoF 23种设计模式,但一般在介绍设计模式时都会对它进行说明

  • 最常见的7种面向对象设计原则:面向对象设计原则蕴含在很多设计模式中。

    • 单一职责原则:一个类只负责一个功能领域中的相应职责。

    • 开闭原则:软件实体对外扩展开放,而对修改关闭。

    • 里氏代换原则:所有引用基类对象的地方均能透明地使用其子类的对象。

    • 依赖倒转原则:抽象不应该依赖于细节,细节应该依赖于抽象。

    • 接口隔离原则:使用多个专门的接口,而不是单一的总接口。

    • 合成复用原则:尽量使用对象组合而不是继承来达到复用的目的。

    • 迪米特法则:一个软件实体应该尽可能少的与其他实体发生相互作用。

  • 设计模式是一种基本思想,不仅存在于c#、java或者c++中,C语言的项目开发中也能够派上用场。


设计模式详细分类

以下列举23+1种具体的设计模式,每种设计模式将在后续文章中详细介绍。

  • 6个创建型模式

    • 简单工厂模式【Simple Factory Pattern】

    • 工厂方法模式【Factory Mothod Pattern】- 对象创建型模式

    • 抽象工厂模式【Abstract Factory Pattern】- 对象创建型模式

    • 单例模式【Singleton Pattern】- 对象创建型模式

    • 原型模式【Prototype Pattern】-对象创建型模式

    • 建造者模式【Builder Pattern】- 对象创建型模式

  • 7个结构型模式

    • 适配器模式【Adapter Pattern】- 类对象结构型模式

    • 桥接模式【Bridge Pattern】- 对象结构型模式

    • 组合模式【Composite Pattern】- 对象结构型模式

    • 装饰模式【Decorator Pattern】- 对象结构型模式

    • 外观模式【Facade Pattern】- 对象结构型模式

    • 享元模式【Flyweight Pattern】- 对象结构型模式

    • 代理模式【Proxy Pattern】- 对象结构型模式

  • 11个行为型模式

    • 职责链模式【Chain of Responsibility Pattern】- 对象行为型模式

    • 命令模式【Command Pattern】- 对象行为型模式

    • 解释器模式【Interpreter Pattern】- 类行为型模式

    • 迭代器模式【Iterator Pattern】- 对象行为型模式

    • 中介者模式【Mediator Pattern】- 对象行为型模式

    • 备忘录模式【Memento Pattern】- 对象行为型模式

    • 观察者模式【Observer Pattern】- 对象行为型模式

    • 状态模式【State Pattern】- 对象行为型模式

    • 策略模式【Strategy Pattern】- 对象行为型模式

    • 模板方法模式【Template Pattern】- 类行为型模式

    • 访问者模式【Visitor Pattern】- 对象行为型模式



Acknowledgements:
http://blog.csdn.net/feixiaoxing/article/details/7294900
http://blog.csdn.net/lovelion/article/details/17517213

2017.08.19

原创粉丝点击