面向对象和面向过程并不是编程的区别,而是设计的区别。
如果说面向过程就是强调一步一步,那对象里的method,也是一步一步写,所以我不认同字面上去解释面向过程。
面向对象其实就是三点,
封装(encapsulation),
继承(Inheritance),
多态(polymorphism)。
这三点的意思我就不啰嗦了。无非是,
封装,一切皆class的原因,任何程序,都要封装好,provide接口就行了,好用且安全。
继承,书中给的一句话的解释是,让我们在设计相似的东西时更加方便。
多态,书中给的一句话的解释是,我们在使用类似的东西的时候可以不用去思考它们微弱的不同。
基于这三点,OOP,至少我个人的理解,OOP仅此而已。我们关心的不是过程,而是接口,而接口来自对象,故名为面向对象。
|
|