技术开发 频道

设计范例真的很重要吗

【IT168 分析评论】

    网络上对于DesignPattern有很多争议,许多争论是感情化的表达,而有些意见还是比较中肯的,怎么从这些口水战中,挑出最有价值的东西并加以吸收,是本文最关心的问题。

    分析这个问题的可以从多个角度入手,包括

    1.软件设计本质的核心价值是什么?DesignPattern的核心能力是什么?

    不管软件工程如何发展,系统的复杂性如何增长,其核心价值40年来并未有什么实质的变化,具体罗列如下:

    *软件必须能够解决现实中需要解决的问题,达成设计的初衷。

    *可维护性,能够最小成本完成维护

    *能偶一定程度预测未来的变化,并且在架构上能容易适应这些变化。

    原理上来说,DesignPattern认可并且支持这些价值观,

    2.DesignPattern对于软件工程做了哪些贡献?

    *作为一种沟通工具和软件行业语言:DesignPattern系统化的命名和良好的模型抽象,使得一般的程序员也能容易理解。随着DesignPattern概念的普及,带来了软件工程师之间的沟通效率的提高,如果没有DesignPattern,可能描述一个结构概念需要讲几百个字,而现在只需要提几个字,就能让听众理解十之八九。

    *作为软件开发的过程优化方法:软件开发的本质是一个“重复性过程”(RecurringProcess),相同的“子规则”,“微结构”和“子功能”,总是不断的在各种软件中重复。不排除各个行业之间的不同,比如PhotoShop要解决的问题一定与StarCraft不同,但除去程序应用逻辑的不同,如果分解到函数实现的底层,两者并没有本质不同。从宏观的软件开发过程来看,设计就是根据待解决问题的特点和应用场景,将已有的“子规则”,“微结构”和“子功能”定制化,使其组合起来能解决具体的实践问题。DesignPattern总结出这些“微结构”和“子规则“,将其标准化和通用化,并提供例子和提示,帮助开发者更好的应用于面向对象的设计和开发实践活动中。

    3.DesignPattern能解决哪些问题,不能解决哪些问题?

    任何事物都有它的局限,有些局限是主观设计时被排除在外,有些局限是客观因素所制约。

 

0
相关文章