Design Pattern Explained 读书笔记二——设计模式序言
2016-04-02 17:27
176 查看
设计模式的由来:
20 世纪 90 年代初,一些聪明的开发者偶然接触到 Alexander(Christopher Alexander 的建筑师) 有关模式的工作。他们非常想知道,在建筑学成立的理论,是否在软件设计中也适用。● 软件中是否存在不断反复出现、能够以某种同样方式解决的问题?
● 是否可能用模式方法来设计软件,即先找出模式,然后依据这些模式
创建特定的解决方式?
GoF 自己并没有创造书中的模式,认识到这一点非常重要。
相反。他们仅仅是
将软件界已经存在的、反映了(针对各种详细问题的)优秀设计经验的模式识别出来。
模式的描写叙述应该包含 4 项:
● 模式的名称● 模式的目的。即要解决的问题
● 实现方法
● 为了实现该模式必须考虑的限制和约束因素
更为详细的学习一个设计模式,应该考虑下面要点:
名称 :每一个模式都有惟一的用于标识的名称
意图 :模式的目的
问题: 模式要解决的问题
解决方式 : 模式如何为问题提供适合其所处环境的一个解决 方案
參与者和协作者: 模式所涉及的实体
效果: 使用模式的效果。研究模式中起作用的各种因素
实现 :模式的实现方式 注意:实现仅仅是模式的详细体现,而不能视为模式本身
一般性结构: 显示模式典型结构的标准图
相关文章推荐
- 【POJ1765】November Rain——扫描线+线段树
- LeetCode. Container With Most Water
- IBM openblockchain学习(三)--Ledger源码分析
- 【LeetCode】220. Contains Duplicate III
- error: command 'gcc' failed with exit status 1 的解决办法
- RAID5工作原理介绍
- 219. Contains Duplicate II
- LeetCode 336. Palindrome Pairs
- DrawableContainer
- lintcode-medium-Number of Airplanes in the Sky
- 使用MacBook Air的4项基本技巧
- Xenomai on the Beaglebone Black in 14 easy steps ---fwqlzz love is for ever
- 11. Container With Most Water
- 阶梯博弈(Stair Nim)
- leetcode 172. Factorial Trailing Zeroes
- rails中使用ajax
- 领域驱动设计(Domain Driven Design)参考架构详解
- leetcode 每日一题 172. Factorial Trailing Zeroes
- tail -F查看线上日志
- Run-Time Check Failure #0 错误