我对面向数据的设计有所了解,例如,您拥有一个包含多个对象的类,而不是为单个对象创建一个类,例如:
struct Circle { int x, y; int radius; };
你将会拥有:
struct Circles { std::vector<int> xpos; std::vector<int> ypos; std::vector radii };
(我希望这是对面向数据设计的正确解释)但是,有没有像数据驱动的方式来做这件事或什么?
我对面向数据的设计有所了解,例如,您拥有一个包含多个对象的类,而不是为单个对象创建一个类,例如:
struct Circle { int x, y; int radius; };
你将会拥有:
struct Circles { std::vector<int> xpos; std::vector<int> ypos; std::vector radii };
(我希望这是对面向数据设计的正确解释)但是,有没有像数据驱动的方式来做这件事或什么?
两者没有关系。数据驱动的编程是关于消费和产生信息流的过程。想一想:在管道中链接在一起的 Unix 命令。DDP 涵盖的不仅仅是单线管道;输入和输出的图形网络;甚至输出路由以输入为条件。在一个进程中,协程网络可以是数据驱动编程的一个例子。维基百科文章很好地涵盖了这一点。
面向数据的设计注重复杂数据的存储方式;为了缓存的有效性,或者通过生成副本来消除锁争用。数据的列存储与行存储是 DoD 的数据库应用程序。作为一个副作用,DoD 似乎与 OOD 剑拔弩张。后者试图隐藏对象基础数据。DoD 公开数据,因此用户可以选择以最适合实际存储的方式处理结构化集合。维基百科的文章是一种薄。