前言
在结束UML的阶段学习后,开始着手C#大话设计模式的学习,这本IT畅销书以诙谐幽默的小故事讲述一个个世纪模式的具体使用,在简单轻松的环境中快速领悟设计模式的精髓,在一定程度上促进我们面向对象概念认识的补充。设计模式到底是干啥的?怎么才能更快更好 的学习呢?为开发者沟通提供更高层次的环境。
为什么学习设计模式
1.小故事
设想有两个木匠,他们在讨论如何连接去使用一组抽屉,一个人问:“ 你准备用什么顺序连接这些抽屉”另一个答道 “我要拿两块木头,砍掉大约两厘米,在四十五厘米深度打角,然后再在四十五深度砍掉四厘米,然后
上下四十厘米处,然后......”
第二个人要描述的是如何去燕尾接合,在木工中是一个标准的接合方式,这样的描述不是目标沟通,实际上他隐藏了沟通,如果第二个人说“我要使用一个燕尾接合” 那就会传递更多信息用很少的话。
在第二个例子中,木工正在描述一个正常的连接方式,并且基于他们的理解做出的描述。 例如每一个复杂的结合,结合的力度等等。
这就是软件开发中设计模式应用的情况,如果一个开发者说 “我在使用一个策略模式” 或 “我在使用一个工厂模式”传递给另外一个理解这个模式的并且知道如何使用的开者。http://www.cnblogs.com/flyinthesky/archive/2008/06/12/1218395.html
2.分类:
- 创建型: 单例模式 简单工厂模式 工厂方法模式 抽象工厂模式 建造者模式 原型模式
- 结构型: 代理模式 适配器模式 装饰器模式 桥接模式 组合模式 享元模式 外观模式
- 行为型: 观察者模式 模板方法模式 命令模式 状态模式 职责链模式 解释器模式 中介者模式 访问者模式 策略模式 备忘录模式 迭代器模式
3.学习的目的:
对我们来说学习别人的代码是为站在巨人的肩膀上,学习其中精髓,我们最先接触的OCP原则在每个模式中都会体会到。学会如何更好的组织我们的代码,尽量的做到高内聚、低耦合,而不是简单的去被这些模式,我们知道记是记不住,设计模式要是真的学会了,你们会发现在写代码的时候,脑子里根本没有什么设计模式,你都已经融会贯通了。
真正写代码的时候是不会话那么多的时间考虑模式的问题,代码写完了一看,这里有模式,那里也有模式。这就如同我们讲话不会去考虑语法,但是说出来大部分的话都是符合语法要求的。这也如同我们写程序的时候不会总是去想程序的语法的问题,我们自然而然写出来的东西就是可以编译的。道理都是一样的。