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


    先说封装

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

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

    然后是继承

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

    最后是多态

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

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

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

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

  • 相关阅读:
    自己修改的两个js文件
    .net4缓存笔记
    使用.net的Cache框架快速实现Cache操作
    关于招聘面试(转)
    PHP中获取当前页面的完整URL
    Linux在本地使用yum安装软件(转)
    Phalcon的学习篇-phalcon和devtools的安装和设置
    GY的实验室
    aip接口中对url参数md5加密防篡改的原理
    nginx 多站点配置方法集合(转)
  • 原文地址:https://www.cnblogs.com/xuanbg/p/14271040.html
Copyright © 2020-2023  润新知