软件设计最重要的目标是:一、性能要达到客户的要求;二、功能要达到客户的要求;三、可维护性强。引入设计模式的目的是要达到第三个目标,即可维护性强(注:设计模式并不能说明可以提高软件性能和功能)。
什么样的软件才是可维护性能的软件?这是很多人关心的问题。在这里我找了一些资料,并总结如下:
第一、可扩展性强。程序设计时常要根据需求变化而要求扩展功能模块。我们设计软件时常常犯一个错误---可扩展性不强,一旦要扩展内容可能要把以有的内容改掉,甚至推翻重做。程序代码、功能或状态要减少相互依赖,扩展后要不影响之前的内容。
第二、可修改性强。修改一个功能块不能影响整个软件。
第三、可替换性好。任何替换操作都要简单,而且不能影响现有的软件功能。比如网页设计时要使用Flash插件,Flash插件在升级替换时不会影响当前的网站的功能或架构。微软发明使用COM组件也这是个目的,COM组件的升级并不会影Windows的运作。