26

谁能给我解释一下

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

3 回答 3

21

首先我想说,面向数据的设计和数据驱动的编程是不一样的!

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

所有这些都是为了编写高性能应用程序而创建的。您正在处理同质的线性数据——所有这些都是为了充分利用 CPU 缓存(指令和数据)。

只要有可能,尽量避免分层结构(使用数组代替),尝试编写适用于多个数据的函数并使用冷热结构拆分

int Foo(int* input_data, int count)
{
    // do something with your data
}
于 2011-05-09T15:27:07.717 回答
2

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

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

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

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

于 2010-11-08T09:55:21.300 回答
-8

面向数据的编程只是一种带有数据库的编程语言,您可以创建表和查询,并通过程序来操作存储在其上的数据,面向数据的语言的示例是 SQL、DBase 和 Visual Foxpro。

于 2011-09-05T17:47:47.190 回答