【设计模式】从菜鸟到大鸟之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#是完全面对对象的,这就需要我们能跟在心里添加面向对象的思想,面向对象以可复用、可维护的特点玩败面向过程。遇到简单的问题,我们都要从心里用面向对象的思想去思考一下。
四、小结
《设计模式》真是一个大宝库啊!每一个模式都是精髓!都值得我们品味!
会通过以后的不断实践来熟练技术,提升思想。另外向大家推荐一位大神:刘伟老师。
- 【设计模式】从菜鸟到大鸟之23个模式整体观
- 【设计模式】从菜鸟到大鸟之命令模式
- 【设计模式】从菜鸟到大鸟之工厂三姐妹
- 【设计模式】从菜鸟到大鸟之《大话设计模式》初体验
- 【设计模式】从菜鸟到大鸟之OOTV杯大赛评委
- Java[从菜鸟到高手演变]之设计模式
- Java之美[从菜鸟到高手演变]之设计模式
- Java之美[从菜鸟到高手演变]之设计模式二
- Java之美[从菜鸟到高手演变]之设计模式
- Java之美[从菜鸟到高手演变]之设计模式三
- Java之美[从菜鸟到高手演变]之设计模式四
- Java之美[从菜鸟到高手演变]之设计模式
- Java之美[从菜鸟到高手演变]之设计模式
- Java之美[从菜鸟到高手演变]之设计模式一
- Java之美[从菜鸟到高手演变]之设计模式二
- Java之美[从菜鸟到高手演变]之设计模式三
- Java之美[从菜鸟到高手演变]之设计模式四
- Java之美[从菜鸟到高手演变]之设计模式
- flask环境
- 电脑开启自动启动程序,单任务启动程序。
- log4j + flume
- QT中监控全局键盘鼠标事件
- TCP三次握手和四次挥手
- 【设计模式】从菜鸟到大鸟之23个模式整体观
- python列表类型内建函数
- cf 579B
- 类成员函数指针回调问题。(可以回调但是,函数回调后this指针无效)
- 自定义控制器POP手势动画,快速创建model
- vc++导入com组件
- Codeforces Round #320 (Div. 2) A B C D E
- JNI 常用API
- 关于引用及取地址&运算符的用法