设计模式(1)简介
HeadFirst 设计模式 中文版总结
简介
首先解释OO的概念。OO即Object Oriented,也就是面向对象。一下面向对象都以OO表示。
OO设计基础:抽象、封装、多态和继承
设计模式作为"共享模式词汇"具有强大威力
n 使用模式名称进行沟通,交流双方交流的不只是模式名称,而是整套模式背后象征的质量、特性、约束。
n 模式能够让你用少的词汇做到充分沟通。
n 将说话的方式保持在模式层次,能够让你在"设计圈"呆久一些
n 共享词汇帮团队快速充电
n 共享词汇帮助初级开发人员快速成长
松耦合的概念
松耦合的基本概念是:
允许改变或者当问题发生在“电线的一端时”来避免影响到其他的端点。也就是说,改变或者供应者或者服务的问题不能影响到用户----或者用户的问题不应影响到供应者或者服务。举例来说,如果服务的新版本被推出的话,服务的用户就不必非要去修改,不必非要去改变路线,甚至不必经历停滞期----因为它(服务的新版本被推出)能清楚地向他们显示出来。相对而言,如果服务的一个用户决定改变他们正在使用的供应者(可能有了一个更低价格的服务供选择),这不需要用户应用必须要被重新编码,甚至是中断来做这样的改变。作为提供松耦合的必备基本要素,Web服务管理代理经常使用在用户和供应者之间。
目的:
建立弹性的OO系统,能够应对变化,尽量降低对象间的依赖。
面向对象原则
1、 找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混合起来
2、 针对接口编程,而不是针对实现编程(策略模式)
3、 多用组合少用继承(策略模式)
4、为了交互对象之间的松耦合设计而努力(观察者模式)
5、类应该对扩展开放,对修改关闭。(装饰者模式)
6、要依赖抽象,不要依赖具体类(工厂模式)
使用设计模式要注意的问题
1、让设计模式自然而然的出现在你的设计中,而不是为了使用模式而构造特殊场景
2、模式不是僵化的教条,可以根据具体情况进行修改
3、任何模式都带来一定的开销,因为使用模式之后带来了模式的增加,决不能滥用设计模式。
4、总是使用能满足需求的最简单的方式,哪怕不用模式。