什么是面向数据的编程?

wiz*_*rdz 21 paradigms programming-languages

任何人都可以向我解释

  1. 什么是面向数据的编程?
  2. 面向数据的编程和函数式编程是一样的吗?
  3. 面向对象的编程与面向对象的编程有何不同?
  4. 在什么情况下我们选择面向对象编程语言的面向数据的编程语言?

小智 19

首先我要说的是,面向数据的设计和数据驱动的编程并不相同!

在面向对象的编程中,您专注于单个对象(类 - 其方法,成员等).在面向数据的设计中,您正在考虑如何触摸和处理数据.您只需要一个将输入数据处理为输出数据的框(理想输入数据与输出相同).

所有这些都是为了编写高性能应用程序而创建的.您正在研究同类线性数据 - 所有这些都可以充分利用CPU缓存(指令和数据).

每当你可以尽量避免的层次结构(使用数组来代替),尝试编写在多个数据工作的功能和使用结构分裂.

int Foo(int* input_data, int count)
{
    // do something with your data
}
Run Code Online (Sandbox Code Playgroud)

  • >使用冷热结构分裂这是什么意思? (4认同)
  • @MarcusJ热/冷拆分是一种将数据分为两类的技术。您每帧或每隔一段时间(热)使用的数据,以及不频繁使用(冷)的数据。这有助于避免在缓存行中加载不必要的数据。有关更多详细信息,请查看以下说明:http://gameprogrammingpatterns.com/data-locality.html#hotcold-splitting (2认同)

Mud*_*sir 2

顾名思义,DOP 旨在开发数据驱动的应用程序。它与 OOP 不同。如需进一步参考,请访问以下链接;

http://www.rti.com/whitepapers/Data-Oriented_Architecture.pdf

此处的备用链接,因为上面的链接可能不起作用。

http://en.wikipedia.org/wiki/List_of_programming_languages_by_category#Data-oriented_languages