17.2 面向对象的开发范式

    对象是包含了方法和数据的结构体,这给开发者带来了新的视角去分析问题。

    面向对象的最大好处就是封装,让我们再回顾一下这些设计模式都封装了哪些方面,如表17-1所示。

    figure_0280_0291

    尽管对象的粒度有大有小,但是一般地,对象的粒度超过了单个的方法或者结构体,这种大的模块化的单元给我们带来了很多实现上的好处。

    为封装提供了前提保证,使我们可以实现数据和方法的隐藏。

    易于分解问题:为了实现一个系统,我们总是把系统分割成大模块,然后再分割成小的单元实现,如果没有对象,我们需要把大的模块直接分解成方法,这样分割的跨度比较大。而对象相对粗的粒度正好弥补了这个缺陷,使我们在设计系统时,把视角转向了对象,考虑对象应该实现什么功能,以及它们之间是怎么协作的,这样问题更加容易分解。易于重用:由于对象的粒度较大,只要重用一个对象,就可以重用对象里的所有可见的方法。

    易于组合更强功能:只要组合这些大粒度的对象,让它们按照需要进行协作,就能完成更强大的功能。

    多态可以让我们关心在什么时间去做,而不去关心如何去做,因为如何去做可以在后续开发中扩展。多态强调以相同的方式处理不同类型的对象,而这些对象有什么样的行为却在运行时决定。

    OOP强调面向接口和抽象的编程,隐藏了具体的实现,减少了耦合。