java - 业务逻辑和数据库存储的单独数据表示

标签 java oop model-view-controller

我正在为扑克游戏编写一些业余爱好项目。我的应用程序将在数据库中存储很多游戏。我创建了 Game 对象的表示,它使用了很多其他对象,例如:PlayerHand(基本上是 2 个 Card 对象作为属性,以及一些实用方法,如 isSuites()、isPaired() 等)、Actions(描述玩家完成的赌注筹集)、牌面(描述翻牌、转牌和河牌)等。

问题是,对于数据库存储,我可以以更紧凑、更有效的方式描述游戏。例如,我可以为每只独特的手牌使用整数。这种表示形式很紧凑,有利于数据库,但对于其他逻辑实现,我希望有更多的字段来描述一只手,而不是一个整数。我不喜欢在一个类中同时拥有两种表示的想法,这看起来不太正确。

问题:什么方法可以解决我的问题?

我想出的最好的解决方案是 MVC 模式。其中模型是我的紧凑数据库表示, View 是我的业务逻辑表示。但同样,这对我来说似乎不太合适,因为对于这样一个简单的任务来说看起来太复杂了。有更优雅的方法或更简单的模式吗?

最佳答案

MVC是针对整个应用程序的,将流程控制、表示、业务逻辑分开。您需要的是数据映射器,这样您就可以拥有对数据库一无所知的域对象。对于大多数应用程序,我通常同时使用 MVC 和数据映射器。

关于java - 业务逻辑和数据库存储的单独数据表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13453029/

相关文章:

Java textField 无限循环

c++ - 帮助使用 C++ 进行面向对象编程

javascript - 如何创建可重复使用的 ig-grid

objective-c - 当前 View Controller 显示黑屏

java - 在java中将本地时区转换为GMT

java - 什么是 "Aware"?我什么时候应该在我的类(class)名称中包含?

java - Apache POI - 丢失单元策略

c# - 一个无法访问的类。 VS2010

c++ - 前向声明和析构函数

model-view-controller - “Dapper”已经具有为 'System.Data.SqlClient' 定义的依赖项