设计范例(Design Pattern)真的很重要吗? part 1
来源:互联网 发布:美颜照片还原软件 编辑:程序博客网 时间:2024/05/01 17:22
To raise new questions, new possibilities, to regard old problems from a new angle, requires creative imagination and marks real advance in science.
-- Albert Einstein
网络上对于Design Pattern有很多争议,许多争论是感情化的表达,而有些意见还是比较中肯的,怎么从这些口水战中,挑出最有价值的东西并加以吸收,是本文最关心的问题。
分析这个问题的可以从多个角度入手,包括
1. 软件设计本质的核心价值是什么? Design Pattern的核心能力是什么?
不管软件工程如何发展,系统的复杂性如何增长,其核心价值40年来并未有什么实质的变化,具体罗列如下:
- 软件必须能够解决现实中需要解决的问题,达成设计的初衷。
- 可维护性,能够最小成本完成维护
- 能偶一定程度预测未来的变化,并且在架构上能容易适应这些变化。
原理上来说,Design Pattern认可并且支持这些价值观,
2. Design Pattern对于软件工程做了哪些贡献?
- 作为一种沟通工具和软件行业语言:Design Pattern系统化的命名和良好的模型抽象,使得一般的程序员也能容易理解。随着Design Pattern概念的普及,带来了软件工程师之间的沟通效率的提高,如果没有Design Pattern,可能描述一个结构概念需要讲几百个字,而现在只需要提几个字,就能让听众理解十之八九。
- 作为软件开发的过程优化方法:软件开发的本质是一个“重复性过程”(Recurring Process),相同的“子规则”,“微结构”和“子功能”,总是不断的在各种软件中重复。不排除各个行业之间的不同,比如Photo Shop要解决的问题一定与Star Craft不同,但除去程序应用逻辑的不同,如果分解到函数实现的底层,两者并没有本质不同。从宏观的软件开发过程来看,设计就是根据待解决问题的特点和应用场景,将已有的“子规则”,“微结构”和“子功能”定制化,使其组合起来能解决具体的实践问题。Design Pattern总结出这些“微结构”和“子规则“,将其标准化和通用化,并提供例子和提示,帮助开发者更好的应用于面向对象的设计和开发实践活动中。
3. Design Pattern能解决哪些问题,不能解决哪些问题?
任何事物都有它的局限,有些局限是主观设计时被排除在外,有些局限是客观因素所制约。
这部分内容留待下一节来讨论。
- 设计范例(Design Pattern)真的很重要吗? part 1
- Provider Model Design Pattern Part 1
- Design Pattern Interview Questions - Part 1
- Design pattern FAQ Part 1 (Training)
- acm真的很重要吗
- 工作经验真的很重要吗?
- Provider Design Pattern, Part 2
- Design pattern FAQ Part 2
- Provider Model Design Pattern and Specification, Part 1
- 对与错真的很重要吗?
- 身体真的很重要!
- 钱真的很重要!
- 面试真的很重要
- 心态真的很重要
- 习惯真的很重要
- @Override真的很重要
- 算法真的很重要
- 观念真的很重要
- 一定要养成的五种好习惯
- JaavaCC enhanced version(2009-5)
- web测试注意细则
- QQ糖豆的第一个愿望有多远?
- 解决中文乱码的过滤器
- 设计范例(Design Pattern)真的很重要吗? part 1
- 2009.6.28 OA 项目组一周工作报告
- TListView控件的标题栏header高度
- #include file和#include virtual的区别
- 流行词语新解
- 汽车检测线
- ASP.NET AJAX Sys未定义的解决方法
- 谷歌信息技术(中国)有限公司和北京谷歌科技有限公司的官司
- 对杂乱的JS代码进行规范的整理格式化