设计模式——序

来源:互联网 发布:单片机仿真器 编辑:程序博客网 时间:2024/06/07 06:03

设计模式已经学完一大阵子了,但是总结总是跟不上。

对于“Design pattern”应该很多人都比较熟悉,他是随着面向对象的发展应运而生的一种编程思想,它使得程序更加灵活,容易修改,并且易于复用,完全符合设计中的“开放-封闭”原则。

而且设计模式为设计提供了共同的词汇,每个模式名就是一个设计词汇,其概念使得程序员的交流变得方便,在开发文档中采用模式词汇可以让其他人更容易理解你的想法,所有,设计模式不仅仅用在程序中,更对于交流起了枢纽作用,所以,学不好设计模式的程序员不是好的程序员。

设计模式中最被看好的应该就是GoF提出的设计模式,下面我们就谈谈“Gang of Four”的23中设计模式。

在面向对象过程设计中,无非处理的就是对象(类),对象的设计又分为两类,即对象的创建和对对象的处理。对对象的处理又可以分为对象与对象之间的组合和对象与对象之间交互及分配职责,根据这种思想,上网上查了个和我有类似想法的分类,自认为还比较好。

GoF设计模式按目的准则分类,可以分为三类:一、创建型(creational),即与对象的创建有关的模式。二、结构型(Structural),即处理类或者对象之间的组合。三、行为型(behavioral)、描述类或对象如何交互及如何分配职责。

创建型模式:

1.      抽象工厂模式(AbstractFactory)

2.      建造者模式Builder

3.      工厂方法模式FactoryMethod

4.      原型模式Prototype

5.      单例模式Singleton

结构性模式

1.      设配器模式Adapter

2.      桥接模式Bridge

3.      组合模式Composite

4.      外观模式Façade

5.      装饰模式Decorator

6.      享元模式Flyweight

7.      代理模式Proxy

行为模式

1.      职责连模式Chain of Responsibility

2.      命令模式Command

3.      解释器模式Interpreter

4.      迭代器模式Iterator

5.      中介者模式Mediator

6.      备忘录模式Memento

7.      观察者模式Observer

8.      状态模式State

9.      策略模式Strategy

10.  模板方法模式Template  Method

11.  访问者模式Visitor

对于这23中设计模式,没有好坏之分,只有合适于不合适,就像对于一棵树来说,并不是越高越好,当我们需要生成一颗牙签时,我们不需要一个参天大树,当然,用一颗参天大树生成一颗牙签完全不是问题,甚至生成上万只牙签都不是问题,但是,对于只需要一支牙签的我们来说,这就是浪费,很多人觉得可笑,谁会傻到用一颗大树去生成一支牙签呢,但是,在设计中,我们却常常把握不好这个度,也就是经常会发现的“设计过度”,这也是刚学完设计模式的程序员最容易犯的错误,本来只需要一根牙签,在写需求时,因为急于表现自己,而把需求写成一颗大树,看似能适应各种需求变化,但是,对于很多百分之一、千分之一发生的事情来说这种设计很容易变成一种负担,时间与经济的负担。所以,设计模式,一定要用到恰到好处。

当然,把握这个度也不是一件简单的事情,当我们没有实战经验去锻炼时,我们唯一能做的,就是用前人的经验,去给自己长教训,这也就是网络发挥力量的适合了,这也是深深体会我们程序员伟大的地方,遇到问题就写博客分享。这种分享精神不是每一个行业都有的。说到底,对于我们这些菜鸟级的程序员来说,面对抽象的设计模式,最好的办法不是先去写程序然后撞个头破血流来获得经验,而是用别的人装的头破血流的经验来给自己长教训。

所以,后续博客我将会写到关于23种设计模式最佳的实用范围,敬请关注!!!

原创粉丝点击