函数指针暗示了面向对象的编程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数指针暗示了面向对象的编程相关的知识,希望对你有一定的参考价值。
罗伯特·马丁在他的演讲“编程的未来”中提到了the motives for structured, functional and object-oriented paradigms:
- 结构化编程:不要使用无限制的
goto
; - 功能编程:不使用赋值;
- 面向对象编程:不要使用指向函数的指针。
但是他提到的OOP背后的动机让我感到困惑。为什么C#作为面向对象的语言有委托(我理解的是函数指针)?
如果OOP基本上都是关于避免指向函数的指针,那么它们是错误的吗?
答案
我认为这是对象导向的误传,可能只是为了戏剧效果。
面向对象的最大实现是:
- 隐藏数据,提供功能(封装,数据隐藏)
- 告诉,不要问(消息)
- 内聚力强,耦合弱
- 等等
这些都没有特别禁止技术上的功能指针。他的意思是,OO中不应该有“静态”函数,因此显然不需要指向“静态”函数的指针。这对我来说听起来很牵强......
总结:我不知道,但听起来不对。
以上是关于函数指针暗示了面向对象的编程的主要内容,如果未能解决你的问题,请参考以下文章