2021年1月13日星期三

关于封装、继承和多态是面向对象编程的三大特征之批判

先说封装

封装是一种通行于世的理念,甚至不限于编程领域。我用来写这篇文章的电脑里面,就到处是封装。我所在的公司,每个职能部门其实也是一种封装。。。

然后,典型的面向过程编程语言C,难道就不能封装了吗?头文件这种设计就是封装理念的一种体现。

然后是继承

继承显然是一种语言特性,只需要编程语言和编译器支持就行。不就是代码复用的一种手段吗?面向对象何德何能,就敢篡为己有?

最后是多态

多态倒是只有面向对象有,但从严格意义上来说,并不是核心特征,而是对象本身特征衍生出来的一种设计模式而已。

面向对象编程真正的特征是什么?

我认为是:数据和逻辑的统一。在面向对象编程中,一个类型里面既包含了对象属性(数据),又包含了方法(逻辑)。强调的是通过公开的方法去操作私有的数据。而不是在对象外部直接操作对象的数据。而且,对于一个对象而言,属性(数据)才是主体,逻辑(方法)则是对象的能力的体现。

而面向过程编程则相反,虽然同样有方法或者叫函数(逻辑),但逻辑才是主体。虽然也有变量可以存储数据,但变量和属性完全不是一回事。变量只不过是数据的抓手,而属性则因为每个对象都是一个特定的实例,所以属性可以完全代表数据。在面向过程的编程中,逻辑就如同生产线,而数据只是生产线加工生产的产品而已。









原文转载:http://www.shaoqun.com/a/508653.html

跨境电商:https://www.ikjzd.com/

巨鲸:https://www.ikjzd.com/w/1986

c88:https://www.ikjzd.com/w/1017.html


先说封装封装是一种通行于世的理念,甚至不限于编程领域。我用来写这篇文章的电脑里面,就到处是封装。我所在的公司,每个职能部门其实也是一种封装。。。然后,典型的面向过程编程语言C,难道就不能封装了吗?头文件这种设计就是封装理念的一种体现。然后是继承继承显然是一种语言特性,只需要编程语言和编译器支持就行。不就是代码复用的一种手段吗?面向对象何德何能,就敢篡为己有?最后是多态多态倒是只有面向对象有,但从严
zen cart:zen cart
淘粉8:淘粉8
2020海口元旦去哪玩?2020元旦海口带孩子玩的地方?:2020海口元旦去哪玩?2020元旦海口带孩子玩的地方?
陆丰玄武山门票多少?:陆丰玄武山门票多少?
卖家无需恐慌!疫情下这样做,三餐可无忧!:卖家无需恐慌!疫情下这样做,三餐可无忧!

没有评论:

发表评论