oop - 以数据为中心和面向对象的应用程序模型有什么区别?

标签 oop architecture distributed

什么是以数据为中心的应用程序,与面向对象的应用程序模型有什么区别?

最佳答案

这两个概念有些正交,a Data Centric Application是数据库发挥关键作用的地方,数据库中的属性可能会影响应用程序中运行的代码路径,并且代码更通用,所有/大多数业务逻辑都是通过数据库关系和约束定义的。 OOP 可用于创建以数据为中心的应用程序。

一些大multi-tier当人们说 OOP 架构在代码中实现业务逻辑并将数据存储在数据库中时,他们想到的架构。然而,认为面向对象设计必然是一个庞大的业务逻辑系统是错误的。

假设您必须实现两个系统之间的消息传递。一种方法(虽然不好)是让每个系统将消息写入数据库,而另一个系统每隔一段时间从数据库中读取一次以获取消息。这将是一种以数据为中心的方法,因为除了读取和写入数据之外,几乎不需要任何代码。

可以通过让系统彼此打开套接字连接并直接发送消息来实现相同的系统。通过这种方式有更多的代码和更少的数据库访问。这是非以数据为中心的方法。这些都可以使用 OOP 概念来实现。

我工作的另一个例子是我们为游戏实现服务器,一种类型的服务器处理多人游戏,因此用户按下按钮,宇宙飞船向其他玩家发射导弹。该服务器不是以数据为中心的,而是基于事件的。另一台服务器存储用户的高分、好友列表等,该服务器是存储分数和列表的数据库的薄包装器。

关于oop - 以数据为中心和面向对象的应用程序模型有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9346995/

相关文章:

Java 架构 - 关于 ActionListener 约定的问题

c# - 设计依赖注入(inject)和单个数据上下文的重用

c# - 关于构建分布式应用程序的建议?

java - 级联groupby示例

java - java中静态最终变量初始化

c# - CompilationUnit 对象是否应该具有保存自身并编译到磁盘的方法?

c++ - 在 C++ 中为 hxx 文件创建 cxx 文件

architecture - 设计控制台应用程序时的架构考虑?

python - 为什么 IoC/DI 在 Python 中不常见?

python - supervisord 停止/启动所有进程但排除 X 和 Y 进程