您的位置:首页 > 其它

第一章 理解设计模式

2008-10-05 15:39 120 查看
第一章 理解设计模式

1.1 模式的定义

什么是模式?

模式是被命名的有组织的信息,他捕获了在一定语境(场景)中包含相关作用力的问题的解决方案的本质结构和内在含义,这种解决方案被证明是成功的。

模式包括3个部分:相关的上下文,与上下文相关的作用力系统和解决问题的方案。

*其实简单说也就是:模式的使用是在特定的环境下,处理特定问题的解决方案的通用思想。只有在环境和处理确定的情况下才可以选择正确的解决方案。

模式体现的就是平衡的思想。

模式的书写包括很多中,主要包括以下几个组成部分:

1.Name: 模式的名称反映描述的结构。但因长度有限不可能包含模式所描述的所有含义。

2.Problem:问题描述了模式的意图。(要解决的问题)

3.Context:即模式所适用的环境。

4.Forces:为了达到目标,各因素之间的相互作迎合制约,揭示了解决问题时需要考虑的各种代价。

5.Solution:解决方案给出问题的解决方法。

6.Example:实例。

7.Consenquence:在结果中需要描述应用魔术后系统的情况,其中既要描述模式的应用的效果,也要描述所付出的代价。

8.Relation Pattern:相关模式给出与这个模式相关的部分。

9.Known use:已知应用在现实中使用的实例。

1.2 GOF的设计模式与模式

GOF的实际模式与一般意义上的模式有很大区别。

GOF的设计模式与模式理论的区别是前者偏重于解决方案,而后者的描述更偏重于问题的描述。

在理解设计模式时,重点应该放在每个模式解决的场合和使用模式需要靠了的因素上。

1.3 理解模式的名称

1.4 理解模式的场景

1.5 理解模式中的作用力

1.6 理解模式的结果和代价

1.61 对象过多

1.62 更复杂的装配关系

1.63 测试难度加大

1.64 程序结构复杂


1.7 设计模式不能做什么

1.71 设计模式不是法则


模式理论的精髓之一就是模式的使用时有前提和代价的,模式是在某种前提下综合各方面因素后考虑得出的结果。

1.72 不能提高开发速度或者形象开发速度

在很多情况下关注的目标不是开发速度,而是程序的健壮性和可维护性。(不断的抽象、封装。对象、接口越来越多,结构越来越复杂。调试、测试越来越麻烦。当然快不了。)

1.73 不是万能的

设计模式的使用是自然而然的事情,很多情况下不使用模式是因为不需要,问题没有复杂到费用不可的程度。我们是为了设计而适用设计模式,而不是为了设计模式而设计。

当你的项目发现如有下列问题之一时,就要考虑重构代码,可能会有某种模式适合。

(1)代码无法进行单元测试。

(2)需求的变动总是导致代码的变动。

(3)有重复的代码存在。

(4)继承层次过多。

(5)隐藏的依赖过多。

*以上的话让人深有同感。

1.8 设计模式的非软件示例

1.9 小结


=====

模式是从解决具体问题抽象出来的,这种具体问题在特定的上下文中重复出现。也就是说,每个具体形式都对一种重复的问题采用重复的解决方案。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: