设计模式的定义:
设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码实际经验的总结,使用设计模式是为了可重用代码。让代码更容易的被他人理解、保证代码的质量。
设计模式的要素:
模式名称,问题,目的,解决方案,效果,示例代码,相关设计模式
1.模式名称:
模式名称通过一两个词来描述模式的问题,解决方案和效果,绝大多数设计模式都是根据其功能或模式结构来命名的。
2.问题:
问题描述了应该何时使用模式,他包含了设计中存在的问题以及问题存在的原因。
在模式的问题描述部分可能会包含该模式使用时必须满足的一系列先决条件。
对问题的描述的同时实际上就确定了模式所对应的使用环境以及模式的使用动机。
3.解决方案:
解决方案描述了设计模式的组成成分,以及这些成分之间的相互作用,各自的职责和协作方式。
4.效果:
效果描述了模式应用的效果以及在使用模式时应权衡的问题。
效果主要包含对模式的优缺点分析。
设计模式的分类:
根据目的分:创建型模式,结构性模式,行为型模式。
根据范围,即模式是用于处理类之间的关系还是处理对象之间的关系
类模式:处理类和子类之间的关系,这些关系通过继承建立,在编译时就确定下来了,是静态的。
对象模式:处理对象之间的关系,在运行时变化是动态的。
根据合成复用原则,我们要少用继承关系所以大部分模式属于对象模式
GOF设计模式: