3.3 生活在对象世界里
当程序员的思想从面向过程转换到面向对象模式时,对于将属性以及行为结合到对象,通常会有一种恍然大悟的感觉。某些程序员重新设计正在执行的项目,并且要将某些部分作为对象重写。其他程序员可能会试着抛开所有代码并重新开始这个项目,将其作为完全的面向对象应用程序。
使用对象开发程序有两种方法。对于某些人来说,对象只是代表了数据以及功能的良好封装,这些程序员的程序中大量使用对象,从而使得代码更容易阅读以及维护。采用这种方法的程序员将独立的代码段切除并且用对象将其替换,就像外科医生植入心脏起搏器那样。这种方法当然没有错,这些人将对象当作在许多情况下都有益的工具。程序的某些部分(例如股票报价)只是"感觉像一个对象"。这些部分可以被分离开来,并且用实际的术语描述。
另一些程序员彻底采用OOP范例,将一切都转换为对象。在他们心目中,某些对象对应于实际的事物,例如桔子或者股票报价,而另一些对象封装了更抽象的概念,例如sorter或者undo对象。理想的方法或许在这两个极端之间。您的第一个面向对象程序可能实际上只是在传统的过程程序中使用了几个对象;您也可能全力以赴将所有的事情都作为对象,从表示int的类到表示主应用程序的类。随着时间的推移,您会找到合理的折中方法。