1.与人类习惯的思维方式一致
由于把描述事物静态属性的数据结构和表示事物动态行为的操作放在一起构成一个整体,可以完整,自然地表示客观世界中的实体,所以面向对象的设计方法强调模拟现实世界的概念而不强调算法,它对问题领域进行自然的分解,确定需要使用的对象和类,建立适当的类等级,在对象之间传递消息实现必要的联系,从而按照人们习惯的思维方式建立起问题领域的模型,模拟客观世界,支持从特殊到一般的归纳思维过程。
2.稳定性好
面向对象方法基于构造问题领域的对象模型,以对象为中心构造软件系统,所以,当对系统的功能需求变化时不会引起软件结构的整体变化,只需做一些局部性修改。例如,从已有类派生出一些新的子类以实现功能扩充或修改增加或删除某些对象。
3.可重用性好
在面向对象方法所使用的对象中,数据和操作是作为平等伙伴出现的,因此,对象具有很强的自含性,此外,对象固有的封装性和信息隐藏机制,使得对象的内部实现与外界隔离,具有较强的独立性。由此可见,对象是比较理想的模块和可重用的软件成分。两种方法可以重复使用一个对象类:一种方法是创建该类的实例,从而直接使用它;另一种方法是从它派生出一个满足当前需要的新类。
4.较易开发大型软件产品
用面向对象方法学开发软件时,构成软件系统的每个对象就像一个微型程序,有自己的数据,操作,功能和用途。因此,可以吧一个大型软件产品分解成一系列本质上相互独立的小产品处理,这不仅降低了开发的技术难度,而且也使得对开发工作的管理变得容易多了。
5.可维护性好
1.面向对象的软件稳定性好。对系统功能需求变化时不会很大程度上地调整整体;
2.面向对象的软件比较容易修改。类是理想的模块机制,它的独立性好,修改一个类通常很少涉及其他类;
3.面向对象的软件比较容易理解。面向对象的软件技术符合人们的习惯思维方式,用这种方法所建立的软件系统的结构与问题空间的结构基本一致;
4.易于测试和调试。类是独立性很强的模块,向类的实例发消息即可运行它,观察它是否能正确地完成要求它做的工作对类的测试通常容易实现,如果发现错误也往往集中在类的内部,比较容易调试
----------------参考文献:教材(软件工程导论)