什么是设计模式?
设计模式的每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心.这样,你就能一次又一次地使用该方案而不必做重复劳动.
设计模式让我们站在了巨人的肩膀上,告诉我们不是解决任何问题都是要从头开始的。
3种设计模式
首先来看设计模式是如何分类的:
我们根据根据两条准则对设计模式进行分类:
1,目的准则:
模式是用来完成什么工作的。
模式依据其目的可分为:创建型,结构型,行为型.
其中:
创建型模式与对象的创建有关;
结构型模式处理类或对象的组合;
行为型模式对类或对象怎样交互和怎样分配职责进行描述;
2,规范准则:
指定模式主要是用于类还是用于对象;
类模式处理类和和子类之间的关系,这些关系通过继承建立,是静态的,在编译时刻便确定了下来。
对象模式处理对象间的关系,这些关系在运行时刻是可以变化的,所以类模式只指那些集中于处理类间关系的模式,而大部分模式都属于对象模式的范畴。
将两条准则综合:
创建型类模式将对象的部分工作延迟到子类,而创建型对象模式将它延迟到另一个对象中。
结构型类模式使用继承机制来组合类,而结构型对象模式则描述了对象的组装方式。
行为型类模式使用继承描述算法和控制流,而行为型对象模式则描述一组对象怎样协作完成单个对象无法完成的任 务。
了解了这3类设计模式之后,在使用设计模式的时候,就要涉及到模式的选择问题了。
如何选择设计模式?
1,考虑设计模式是怎样解决设计问题的
2,浏览模式的意图部分
3,研究模式之间怎样相互联系
4,研究目的相似的模式
5,检查重新设计的原因
6,考虑你的设计哪些是可变的
PS:各种模式间关系
小结
目前,大致学完设计模式,感觉自己的理解还不是很到位,因为自己第一步的学习时,主要关注的还是每种模式的用途和这些模式的大致的分类情况,对于各种模式之间的关系还要继续学习。求高手指点~
注:参考书籍:《设计模式:可复用面向对象软件基础》