设计模式怎么学
?
? ? ? ?如果你是一个缺乏项目经验的人,手捧一本关于《设计模式》的书,一定会有一种云里雾里的感觉,你无论耗用多长时间,也未必真正领会;如果你是一个项目经验丰富的人,那么即使没学过设计模式,也会知道在什么场合代码应该怎么写,写出来的代码不知不觉符合某种模式的要求。
? ? ? 觉得设计模式是在实际的项目经验中应用后领会出来的,而非天天捧着书本学出来的。那么其实学习它只需花费几小时的时间,了解:
? ? ? 什么是设计模式?
? ? ? 设计模式的作用是什么?
? ? ? 设计模式都有哪些?
? ? ? 每个模式都是怎么回事?
? ? ? 每个模式都适用什么场合?
? ? ? 这样,在你熟练应用之前,有个大概的印象就足够了。
?
上述只是我自己的学习看法,不代表任何权威。
?
什么是设计模式?
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结.
个人理解:软件设计的某些特定场合的某些问题的解决思路. 是前人经过大量的实践,总结出来的无论从效率上,扩展性,复用性,可靠性等方面都显现出优势的解决思路。
?
设计模式的作用是什么?
设计的重用;?
为设计提供共同的词汇,每个模式名就是一个设计词汇,其概念使得程序员的交流变得方便;?
在开发文档中采用模式词汇可以让其他人更容易理解你的想法。?
?
设计模式都有哪些?
java中有23种设计模式:
Creational pattern(创建型模式)
?
1.抽象工厂模式 ? ? ? ? AbstractFactory
2.建造者/生成器模式 ?Builder
3.工厂方法模式 ? ? ? ? Factory Method
4.原型模式 ? ? ? ? ? ? ? Prototype
5.单例模式 ? ? ? ? ? ? ? Singleton
?
Structural pattern(结构型模式)
?
1.适配器模式 Adapter
2.桥接模式 ? Bridge
3.组合模式 ? Composite
4.装饰模式 ? Decorator
5.外观模式 ? Facade
6.享元模式 ? Flyweight
7.代理模式 ? Proxy
?
Behavioral pattern (行为型模式)
?
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
?
? ? ? 由于博客的篇幅过长可读性不好,所以将 "每个模式都是怎么回事?与每个模式都适用什么场合?" 的描述,转移到另外一篇博文: ?《设计模式中每个模式的原理与应用场合》。
?