我正在为扑克游戏编写一些业余爱好项目。我的应用程序将在数据库中存储很多游戏。我创建了 Game 对象的表示,它使用了很多其他对象,例如:PlayerHand(基本上是 2 个 Card 对象作为属性,以及一些实用方法,如 isSuites()、isPaired() 等)、Actions(描述玩家完成的赌注筹集)、牌面(描述翻牌、转牌和河牌)等。
问题是,对于数据库存储,我可以以更紧凑、更有效的方式描述游戏。例如,我可以为每只独特的手牌使用整数。这种表示形式很紧凑,有利于数据库,但对于其他逻辑实现,我希望有更多的字段来描述一只手,而不是一个整数。我不喜欢在一个类中同时拥有两种表示的想法,这看起来不太正确。
问题:什么方法可以解决我的问题?
我想出的最好的解决方案是 MVC 模式。其中模型是我的紧凑数据库表示, View 是我的业务逻辑表示。但同样,这对我来说似乎不太合适,因为对于这样一个简单的任务来说看起来太复杂了。有更优雅的方法或更简单的模式吗?
最佳答案
MVC是针对整个应用程序的,将流程控制、表示、业务逻辑分开。您需要的是数据映射器,这样您就可以拥有对数据库一无所知的域对象。对于大多数应用程序,我通常同时使用 MVC 和数据映射器。
关于java - 业务逻辑和数据库存储的单独数据表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13453029/