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

问题描述 投票:0回答:1

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

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

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

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

c# oop delegates function-pointers paradigms
1个回答
0
投票

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

面向对象的最大实现是:

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.