什么是以数据为中心的应用程序?与面向对象的应用程序模型有什么不同?以数据为中心和面向对象的应用程序模型有什么区别?
回答
这两个概念有点正交,Data Centric Application是数据库扮演关键角色的角色,其中数据库中的属性可能影响在您的应用程序中运行的代码路径,以及代码更通用以及所有/大多数业务逻辑通过数据库关系和约束来定义。 OOP可以用来创建一个以数据为中心的应用程序。
一些大的multi-tier体系结构,人们认为当他们说OOP体系结构在代码中实现业务逻辑并将数据存储在数据库中时。然而,认为面向对象的设计必然是一个大型的业务逻辑缠身系统是错误的。
假设你必须在两个系统之间实现消息传递。一种方式(尽管是一种坏方法)是让每个系统都将消息写入数据库,并且每隔一段时间从数据库中读取其他系统以拾取消息。这将是一种以数据为中心的方法,因为除了读取和写入数据之外,所需的代码非常少。
可以通过让系统彼此打开套接字连接并直接发送消息来实现相同的系统。以这种方式,有更多的代码和更少的数据库访问。这是非数据中心的方法。其中任何一个都可以使用OOP概念实现。
我的工作的另一个例子是我们实现游戏的服务器,一种类型的服务器处理多玩家游戏,因此用户按下按钮并且飞船在其他玩家处发射导弹。该服务器不是基于事件的数据中心。另一台服务器存储用户高分,朋友列表等,这个服务器是存储分数和列表的数据库的薄包装。
感谢您的回答。你能否提供更多的信息,你所说的是“如果你的对象是通用的,那么你的应用程序仍然是以数据为中心的”? – 2012-02-19 05:48:58
编辑了一些示例 – 2012-02-19 09:59:25
以数据为中心的设计是应用程序行为被数据封装的设计。一个简单的例子。考虑以下OOP类别:
class Car {
void move(x, y);
private:
int x, y;
}
这是一辆汽车的OOP表示。调用'移动'方法将触发汽车开始移动。换句话说,通过调用类方法触发任何副作用。
下面是同一类,但数据中心:
class Car {
int x, y;
}
为了得到这辆车的移动,我会“只是”改变x和y的值。在大多数编程语言中,更改成员不允许执行逻辑,这就是数据中心通常需要框架的原因。
在这样的框架中,逻辑运行在CRUD的C,U和D上。这种框架将提供适当设施在任何这些事件,以使代码插入,例如:
- DBMS触发
- OMG DDS waitsets /听众(DDS是数据中心的消息收发标准)
- CORTO观察员(CORTO是数据中心的应用程序框架)
数据中心的设计具有很多影响。例如,由于应用程序状态实际上由其数据表示,因此可以自动保留应用程序。一个写得很好的以数据为中心的应用程序可以被存储,停止并从数据库中恢复,并继续像从未消失。
以数据为中心的设计与传统的3层Web架构非常匹配。 Web应用程序通常由后端数据库的内容驱动。这就是为什么当你关闭并重新打开一个动态网页时,它仍然看起来一样(只要数据没有改变)。
- 1. 数据模型和对象模型有什么区别?
- 2. 面向对象和文档数据库有什么区别?
- 3. 领域模型和面向对象领域模型有什么区别?
- 4. 命令式和面向对象编程有什么区别?
- 5. ,对象和指向对象的指针有什么区别?
- 6. Rails - 测试模型和应用模型有什么区别?
- 7. 对象和引用有什么区别?
- 8. 数据库中的对象和实体有什么区别?
- 9. 数据设计和数据模型(ERD)有什么区别
- 10. MVC模型,数据和数据库有什么区别?
- 11. 视图模型和数据传输对象之间有什么区别?
- 12. 独立和桌面应用程序有什么区别?
- 13. ViewState,应用程序和页面会话有什么区别?
- 14. java桌面应用程序和javafx有什么区别?
- 15. .Net桌面应用程序和Web应用程序有什么技术区别?
- 16. “MVC”和“单页应用程序”模板有什么区别?
- 17. 面向对象编程与程序编程 - 最大的区别是什么?
- 18. 面向对象和非面向对象之间的区别javascript
- 19. 面向列的行和面向行的数据库有什么区别?
- 20. 逻辑数据模型和概念数据模型有什么区别?
- 21. ASP和SaaS模型有什么区别?
- 22. pysqlite2中的数据库对象和游标对象有什么区别?
- 23. Android应用程序开发中的Mysql和SQLite数据库有什么区别?
- 24. 内核和程序对象有什么区别?
- 25. 为什么在面向对象的程序中使用'private'?
- 26. 对象和实例有什么区别?
- 27. 对象和变量有什么区别?
- 28. 程序和应用程序有什么区别?
- 29. ERD和上下文数据模型有什么区别?
- 30. 对象存储和键值数据库有什么区别?
你能提供一些你的问题的背景吗? – 2012-02-19 05:29:49
[1]:http://en.wikipedia.org/wiki/Database-centric_architecture [2]:http://en.wikipedia.org/wiki/Object-oriented_programming – 2012-02-19 05:38:27
我在读一本关于分布式体系结构的书以及如何制作应用程序框架。有一个关于以数据为中心和oo应用程序模型的讨论,但我不能理解它。然后我谷歌它,但我无法找到关于这个比较的很多信息。 – 2012-02-19 05:41:25