软件工程中的GoF设计模式

文章类别 in 设计模式

今天来谈谈设计模式,软件模式和数据结构,算法,操作系统,网络,编程思想等可以算是程序员的“内功”,因为这些内容和编程语言无关,它们有点“道”感觉,就像老子说的那样:“道可道,非常道;名可名,非常名”。

设计模式

设计模式可以说是前人走过的路,走的多了,就有了他们总结出来的“套路”,也就是他们总结出了的一些设计方案,使我们可以写出更优雅的代码,灵活的代码,可重用的代码,可扩展的代码…

设计模式的由来

其实一开始,设计模式并不是从软件设计中研发出来的,而是在建筑中借鉴过来的!在79年的时候,有一位很牛逼的建筑师克里斯托佛·亚历山大(Christopher Alexander)编著了设计模式的一本书。

在87年的时候 肯特·贝克沃德·坎宁安 克里斯托佛·亚历山大(Christopher Alexander)的建筑领域的设计模式思想应用在了Smalltalk的图形应用接口(GUI)里边。

88年埃里希·伽玛把这种设计模式思想写为使用于软件开发的论文中。

89-91年James Coplien 利用相同的思想在C++中开发。

差不多在这个时候出现了“四人帮”(Gang of Four,简称GoF),他们分别是Erich Gamma ,Richard Helm,Ralph Johnson ,John Vlissides 。他们用23种设计模式合作出版了《设计模式:可复用面向对象软件的基础》,从而闻名整个软件领域,突破了软件的设计模式,所以现在Gof也会代指为他们出版的这本书。

Gof设计模式

Gof设计模式有23个,分为三类:创建型(如何创建对象),结构型(如何实现对象的组合),行为型(对象如何交互以及怎么分配职责)。

其中创建型有5个:

  • 单例模式 Singleton Pattern
  • 工厂方法模式 Factory Method Pattern
  • 抽象工厂模式 Abstract Factory Pattern
  • 原型模式 Prototype Pattern
  • 建造者模式 Builder Pattern

结构型有7个:

  • 适配器模式 Adapter Pattern
  • 桥接模式 Bridge Pattern
  • 组合模式 Composite Pattern
  • 装饰模式 Decorator Pattern
  • 外观模式 Façade 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 Method Pattern
  • 访问者模式 Visitor Pattern

花些时间学习设计模式

拓宽自己的视野,站的更高,才会看得更远。 不管你是使用哪种面向对象的语言,如果一点设计模式都不懂的话,那么就有点low了。 设计模式也不是很神秘,揭开它的面纱,摸摸他的底,理解它的套路,到一种“阅片无数,心中自然无码”的感觉,灵活应用于我们的项目代码中,也许会有一种格外的爽,当然这需要一些时间去理解设计模式是什么,在什么时候应用什么模式,什么情况要使用,以及它的优缺点,能够应用它的实例,记住其中的关键代码。

接下来..

就从单例模式开始。

相关文章

相关资料