1.2 面向对象的好处

    面向对象有很多优势,我们在这里总结了以下内容。

    对象易于理解和抽象:例如马是一个类,一匹马是一个对象,跑是马的行为。正是由于这个特性,我们很容易把客观世界反映到计算机里,极大地方便了编程设计。

    对象的粒度更大,模块化程度也更高:与方法(函数)和结构体相比,对象是一组方法和数据的单元,所以粒度更大,这样更方便控制和使用;而模块化程度越高,也越容易抽象。

    更加容易重用代码:只要使用继承,就可以拥有父类的方法;只要创建这个对象,就可以使用它们的公有属性和方法;只要使用多态,就可以使用相同的逻辑处理不同类型的对象。

    具有可扩充性和开放性:OOP天生就具有扩展性和开放性。

    代码易于阅读:在阅读代码过程中,可以不去关注那些具体实现类,只要关注接口的约定即可,这样更容易侧重重点。

    易于测试和调试:由于代码易于阅读,所以方便测试,并且由于模块化和抽象化程度高,所以容易发现问题出在哪个模块,也就易于跟踪和调试;最后,测试过程中,有些对象只有在软件交付运行时才能使用(例如一个发送彩信的服务对象),由于对象可依赖于抽象/接口,我们在运行测试时可以使用假对象(Mock对象)替换这些依赖的对象,使之不影响被测试的对象,这样便减少了测试的依赖程度。

    代码容易维护:基于以上各种好处,不难想象代码会变得更加容易维护。