《设计模式解析》中
模式的定义:
每个模式都描述了一个在我们的环境中会不断重复出现的问题,并进而叙述了这个问题解决方案的要素,通过这种方式,解决方案能够百万次地重复应用,但是具体方式又不会完全相同。
几乎任何涉及问题中都会存在模式。一个模式的描述应该包括4个方面:
1.模式的名称
2.模式的目的,即要解决的问题。
3.实现的方法。
4.实现该模式我们必须要考虑的限制和约束因素。
需要注意的是:任何人只能发现模式,而不能发明模式。因为模式是对问题的一些经典性总结或经验。
学习设计模式我们可以:
1.复用解决方案。这也是《设计模式,可复用面向对象软件的基础》的观点之一。
2.确立通用术语:在项目的的设计和分析阶段提供了共同的基准点。
3.提升思考层次。
4。判断设计是否高效正确易扩展,而不仅仅是是否可以工作。
5.改善个人学习和团队学习。
6.提高代码的可修改性和可维护性。
7.采用更佳的设计方案。
8.发现巨型继承层次结构的替代方案。
《设计模式,可复用面向对象软件的基础》一书中给出了的设计模式的分类,将常见的23种设计模式分为3类:创建性,结构性和行为性设计模式。
1.创建型模式:抽象了实例化过程。帮助一个系统独立于如何创建,组合和表示他的那些对象。包括类创建型和对象创建型。类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化委托为另一个对象。
2.结构型模式:涉及到如何组织类和对象来获得更大的结构。结构型类模式采用继承机制来组合接口或实现。结构型对象模式不是对接口和实现进行组合,而是描述了如何对一些对象进行组合,可以在运行时刻改变对象组合关系。
3.行为模式:设计到算法和对象之间职责的分配,不仅描述了对象或类的模式,还描述了他们之间的通信模式,这些模式刻画了在运行时刻难以追踪的复杂的控制流。
具体分类如下: