在第三次系统性学习设计模式的过程中,思考了以下三个问题,本篇主要对第三个问题进行思考。
问题一:面向对象的三大特征是什么?面向对象的基础是什么?
问题二:为什么说面向对象的基础是抽象?对抽象做详细解释。
问题三:如何理解下面这句话? 1)我们要注重多少人来干事,而不是干多少事。 2)我们要注重谁来干事,而不是怎么干事。
这与面向对象的抽象有什么关系?
在我以前的认知中,做事是要讲究过程的结果的,谁来做不是重点,这种想法很容易融入到我的编程思维中,计时类、结账类,回头想想都基于面向过程编程。那么到底什么样的思维是面向对象思维呢。
以第三个问题“我们要注重谁来干事,而不是怎么干事”,面向对象以对象为核心,而不是事件为核心,我们要注重那个类来干事,而不是怎么干事,放到代码上,要把事情的主语抽出来,比如结账类,应该罗列出结账者、消费者、前等对象,不关注具体怎么结账,这才是面向对象的思维。
到目前我认为面向对象的好处在于把一件事中的对象拆分出来,有了这些对象,可以实现各种各样的事件,代码更容易扩充、复用和维护了。