标签:
传统的软件分析方法:功能分解。分析人员将问题分解成了多个功能 ” 功能分解 “ 这种方法就称为步骤(这些步骤就构成了这个问题)。
功能分解方法的缺点:1.它通常会导致让一个主程序负责控制子程序,这是将功能分解为多个子功能的自然结果。但是,主程序所承受的任务太多了:要确保一切正确工作,还要协调各函数并控制它们的先后顺序。
2.功能分解方法的另一个问题在于,它在为未来可能出现的变化未雨绸缪方面,在对代码合适的改进方面,都无能为力。函数要关注的细节是否太多了,比如要实现的逻辑、要交互的东西、要使用的数据?和人一样,如果程序试图同时关注过多的东西,一但有变化出现,就只能坐等BUG。虽然无法预测会发生什么变化,但是通常可以预期哪里更会发生变化。
使用功能分解时,需求变更会对软件开发和维护工作产生极大影响。这时候,主要的精力都放在函数上了(注意力放错地方),而对一组函数或者数据的修改会影响到其他的函数和数据,并依此类推地影响到其他必须修改的函数。只关注函数,将导致一连串变化,而且难以避免。
面向对象的巨大优点之一,就是可以封装这些变化区域,从而容易地将代码与变化产生的影响隔离开来。
标签:
原文地址:http://www.cnblogs.com/encode/p/4373102.html