【设计模式】从菜鸟到大鸟之23个模式整体观

来源:互联网 发布:linux中vim如何退出 编辑:程序博客网 时间:2024/05/01 08:29


一、前排感受

 

         用了三个星期的时间终于拜读完了《大话设计模式》。

 

其中书读了三遍,第一遍快速阅读,丛中获得了一个整体的大框架;第二遍仔细阅读,讲书中的所有的例子都动手操作了,不但熟悉运用了C#,更深刻的锻炼了面向对象的意识;第三遍整体对比看书,把相似的模式都进行对比学习。

 

学习《设计模式》有几种境界,第一种是学习了一两个设计模式,就一直想用到自己的代码中去;第二种是学完全部设计模式,觉得很多模式都很相似,分不清楚它们之间有什么区别;第三种是灵活运用设计模式,就算不用具体哪种模式也可以设计也高质量的代码,无剑胜有剑。

 

我觉得我现在就是第二个境界,觉得她们长得太像了,自已熟练的运用还需要很长时间的锻炼,这一方面,就感觉小菜很厉害啊,大鸟轻轻的点拨一下就可以将代码写出来。我目前可没有这种本事。不过,迟早会有的!

 

二、如何学习?

 

是什么?

         小时候最喜欢看《射雕英雄传》,里面的郭靖通过学习《九阴真经》、《降龙十八掌掌法精义》、《武穆遗书》等武林秘籍,最终成为了武林盟主。而这基本武林秘籍也是每一个武林中人都梦寐以求的。

      

       《设计模式》就是我们编程的武林秘籍。将这些模式和原则熟练的运用到编程中,可以让我们编写的软件更上一层楼!

 

设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解并且保证代码可靠性

怎么学?

整体结构

下面通过对整体的宏观概况,让我们对设计模式更加的熟悉:

 

 

 

 

这么多的武林招式我们怎么才能记住?怎么才能熟练的运用呢?下表引用自刘伟老师的博客,在这张表中很清晰的展示了所有的设计模式的学习难度和使用频率:

 

 

 常用设计模式一览表

类型

模式名称

学习难度

使用频率

创建型模式

Creational Pattern

单例模式

Singleton Pattern

★☆☆☆☆

★★★★☆

简单工厂模式

Simple Factory Pattern

★★☆☆☆

★★★☆☆

工厂方法模式

Factory Method Pattern

★★☆☆☆

★★★★★

抽象工厂模式

Abstract  Factory Pattern

★★★★☆

★★★★★

原型模式

Prototype Pattern

★★★☆☆

★★★☆☆

建造者模式

Builder Pattern

★★★★☆

★★☆☆☆

结构型模式

Structural Pattern

适配器模式

Adapter Pattern

★★☆☆☆

★★★★☆

桥接模式

Bridge  Pattern

★★★☆☆

★★★☆☆

组合模式

Composite  Pattern

★★★☆☆

★★★★☆

装饰模式

Decorator  Pattern

★★★☆☆

★★★☆☆

外观模式

Façade  Pattern

★☆☆☆☆

★★★★★

享元模式

Flyweight  Pattern

★★★★☆

★☆☆☆☆

代理模式

Proxy  Pattern

★★★☆☆

★★★★☆

行为型模式

Behavioral Pattern

职责链模式

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

★★★★☆

★☆☆☆☆

【作者:刘伟 http://blog.csdn.net/lovelion

 

记是记不住

 

通过这个表,我们就可以很轻松的了解,有哪些模式。但是这么多模式记是记不住的,更重要的是我们要熟练的应用。

 

编织知识网

 

把旧知识和《设计模式》对比学习,拉近我们学习过程中的陌生感。

 

比如,在《设计模式》中,每一个设计模式都会有一张对应的类图,这就可以让我们亲自动手去画一画,然后实现代码。看看用软件生成的代码和书本上的一样吗。

 

亲自动手

  

设计模式有很多个,书本里的例子就更多的数不过来。有地时候只有亲自动手实践才能更好的学会如何操作。

 

 

利用互联网

 

         我基本是一天一个模式,每天都会在最后自己进行反思。更好的方式是利用互联网:每学完一个模式,自己动手查一查,看看网上有没有大神和我的思想一样。经过碰撞,会让我对设计模式的理解更加深刻。

 

 

三、改变思想

 

面向过程→面向对象

 

《大话设计模式》中的例子是用C#完成的,而C#是完全面对对象的,这就需要我们能跟在心里添加面向对象的思想,面向对象以可复用、可维护的特点玩败面向过程。遇到简单的问题,我们都要从心里用面向对象的思想去思考一下。

 

 

四、小结

《设计模式》真是一个大宝库啊!每一个模式都是精髓!都值得我们品味!

会通过以后的不断实践来熟练技术,提升思想。另外向大家推荐一位大神:刘伟老师

 

 

0 0
原创粉丝点击