闲说设计模式
- 信耶稣的人都要读圣经,而信OO的人都要读四人组的《设计模式》,这就是OO的圣经。
- OO概念是我们的基础,OO原则 是我们的目标,而设计模式是我们的做法。
- 把模式装进脑子里,然后在你的设计和已有的应用中,寻找何处可以使用它们。
设计模式定义
1、模式:在某情境下,针对某问题的某种解决方案。
- 情境:就是应用某个模式的情况。这应该是会不断出现的情况。
- 问题:就是你想在某情境下达成的目标,但也可以是某情境下的约束。
- 解决方案:就是你所追求的,一个通用的设计,用来解决约束、达到目标。
2、STAR法则:在某情境下,针对某目标,采取了某种行动,得到了某种结果。
相同:应用于重复出现的问题
结论:一种思想、思考方式
设计模式分类
我们知道四人组的《设计模式》共介绍了23种,并且将其分成3类,分别是:创建型、结构型、行为型,如下所示:
- 创建型:5个。单例模式、工厂方法模式、抽象工厂模式、原型模式、建造者模式
- 结构型:7个。适配器模式、装饰模式、代理模式、组合模式、桥接模式、外观模式、享元模式
- 行为型:11个。观察者模式、策略模式、模板方法模式、命令模式、迭代器模式、中介者模式、备忘录模式、解释器模式、状态模式、责任链模式、访问者模式
1、分类的目的:方便记忆与使用、方便比较、可以在更抽象的层次上思考这些东西、有机会还可以创建自己的设计模式。(分为3个类别是比较适合的,当前分为4,5类也没有错。)
2、分类方式:模式所处理的是类或对象。——分为:类模式和对象模式
类模式:描述类之间的关系如何通过继承定义。类模式的关系是在编译时建立的。(模版方法模式、工厂方法模式、适配器模式、解释器模式)
对象模式:描述对象之间的关系,而且主要是利用组合定义。对象模式的关系通常在运行时建立,而且更加动态、更有弹性。(单例模式、建造者模式等)
3、对3个名词的理解:
创建型:涉及到将对象实例化,这类模式都提供一个方法,将客户从所需要实例化的对象中解耦。
结构型:可以让你把类或对象组合到更大的结构中。
行为型:都涉及到类和对象如何交互以及分配职责。
单例模式
工厂方法模式
抽象工厂模式
原型模式
建造者模式
总结
- 设计应保持简单
- 使用设计模式时,思考带来的副作用
- 使用模式的情形:出现需要设计模式的迹象时、重构时
- 不要过度设计,不需要设计模式的时候就勇敢的删掉
最后:设计模式只是一种工具,合理使用才是正道。