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