函数指针暗示了面向对象的编程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数指针暗示了面向对象的编程相关的知识,希望对你有一定的参考价值。

罗伯特·马丁在他的演讲“编程的未来”中提到了the motives for structured, functional and object-oriented paradigms

  • 结构化编程:不要使用无限制的goto;
  • 功能编程:不使用赋值;
  • 面向对象编程:不要使用指向函数的指针。

但是他提到的OOP背后的动机让我感到困惑。为什么C#作为面向对象的语言有委托(我理解的是函数指针)?

如果OOP基本上都是关于避免指向函数的指针,那么它们是错误的吗?

答案

我认为这是对象导向的误传,可能只是为了戏剧效果。

面向对象的最大实现是:

  • 隐藏数据,提供功能(封装,数据隐藏)
  • 告诉,不要问(消息)
  • 内聚力强,耦合弱
  • 等等

这些都没有特别禁止技术上的功能指针。他的意思是,OO中不应该有“静态”函数,因此显然不需要指向“静态”函数的指针。这对我来说听起来很牵强......

总结:我不知道,但听起来不对。

以上是关于函数指针暗示了面向对象的编程的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段9——JS中的面向对象编程

浅谈Perl的类包模块与面对对象编程

Scala的面向对象与函数编程

python------面向对象编程

深入理解 Javascript 面向对象编程(转)

c++面向对象高级编程(上)