本节书摘来自异步社区出版社《C++面向对象高效编程(第2版)》一书中的第1章,第1.14节,作者: 【美】Kayshav Dattatri,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.14 对象模型的优点
C++面向对象高效编程(第2版)
本章我们轻松愉快地讨论并赞扬了面向对象软件开发,最后,强调了要理解面向对象的优势到底是什么。为了有效地使用对象模型,应该充分地理解对象模型的优点。
(1)对象模型鼓励建立随时间演化的系统。这确保了系统的稳定性和可扩展性。不应该为了提供新的功能而抛弃之前的系统(或者从零开始重新设计),使用继承能更加容易地扩展系统功能1。换言之,在对现有系统进行扩展设计的过程中,可同时使用该系统。
(2)以对象和类来思考问题更加容易,因为我们熟悉周围现有的对象。实际上,即使不是计算机方面的专业人士,也能发现这种模型比传统模型更易于理解。
(3)对象模型通过将客户与实现分离,强制执行严格的编程,并通过数据封装来防止数据被意外破坏。
(4)简单类的复用(reuse),如复用日期、时间、分数等,很大程度上促进了代码复用和避免编写重复的代码。简单的类也可用于创建较复杂的类,达到更高程度的代码复用。
(5)对象模型鼓励软件和设计的可扩展复用。类可以通过继承扩展,在类层面达到复用。当类的整个框架用于解决大型问题时,能更大程度地利用复用。简单地说,框架是为解决特殊问题而设计的一组合作的类。客户可以方便地精化(refine)、复用、定制(customize)和扩展框架。大容量存储设备框架就是一个简单的例子,它使得编写新设备的驱动程序更容易。另一个例子是管理各种不同传输协议(如TCP/IP,X.25和XNS)的框架。此外,类层次的复用也相当普遍。我们经常使用的许多数据结构(如链表(list)、队列(queue)和散列表(hash table) )通常都来自一个类层次。在面向过程编程中,很难完成这样的复用。