
1.1.3 对象模型的主要优点
从模型的构成要素上来看,对象模型与传统的结构化方法所使用的模型有着很大的不同,其重要区别在于对象模型引进了对象等相关概念。但并不是说对象模型完全放弃了传统模型中好的原则和经验,相反,对象模型只是在原有模型的基础上引入了一些新的元素和思想。使用对象模型可以构建出具有以下良好结构特性的复杂系统。
1.提高编程能力
正确地理解对象模型有助于提高使用面向对象程序设计语言描述系统的能力。编写面向对象程序的过程实质上也是一个使用面向对象语言描述系统结构和行为的过程。正确理解对象模型的概念框架,对编程能力的提高将具有十分重要的基础作用。
虽然,在编写程序的过程中,人们关注得更多的往往是语法方面的细节,但更抽象一层的知识和概念将为编程提供方向性的指导。经验表明,如果不能正确地理解对象模型中的这些抽象的要素,那么程序设计语言中的很多表现力很强的功能就有可能被忽略或者被错误地使用了。
2.支持软件复用
所谓软件复用(Software Reuse),是指将已有软件的各种相关知识用于建立新的软件,以缩减在软件开发和维护方面的花费。软件复用是提高软件生产力和质量的一种重要技术手段。
早期的软件复用主要是指代码级的复用,被复用的知识专指部分程序代码。后来,软件复用被扩展到领域知识、开发经验、设计决策、体系结构、需求分析、软件设计、程序代码和软件文档等一切与软件开发有关的各个方面。
面向对象方法不仅可以有效地支持软件复用,而且甚至可以支持设计和分析的复用,这导致了可复用的应用程序框架的产生。
例如,Microsoft Visual C++提供的应用程序框架技术,为开发人员提供了一个完整的可运行的应用程序。程序员只要扩充这个程序框架就可以获得他想要的完整应用。而这个程序框架本身就是一个可复用的软件。
面向对象系统的实现通常要比等价的非面向对象实现的规模更小。这不仅意味着系统的代码量更小,而且软件的可复用度的提高也会反映到成本和开发进度上。但另一方面,并不是说面向对象的设计就一定是可复用的设计,如果复用不是项目的主要目标,那么就不太可能实现复用。最后,可复用的设计可能要求在初次实现时的花费更多。但积极的一面是,初次开发付出的高成本将在组件的后续复用中获得补偿。
使用对象模型可以获得更具有可维护性的系统,这样的系统将更适合修改和扩充。也就是说,面向对象系统可以随时间而进化,而不是经历一次较大的需求变更就放弃原来的系统或者完全重新设计。