我正在为扑克游戏编写一些爱好项目。我的应用程序将在数据库中存储很多游戏。我创建了对象 Game 的表示,它使用了许多其他对象,例如:PlayerHand(基本上是 2 个 Card 对象作为属性,以及一些实用方法,如 isSuited()、isPaired() 等)、Actions(描述玩家进行的赌注)、牌面(描述翻牌、转牌和河牌)等。
问题是对于数据库存储,我可以用更紧凑和更有效的方式来描述游戏。例如,我可以只为每只独特的手使用整数。这样的表示是紧凑的,对 DB 有好处,但对于其他逻辑实现,我希望有更多的字段来描述一只手,而不是一个整数。我不喜欢将两种表示都放在一个类中的想法,这看起来不正确。
问题:我的问题可以使用什么方法?
我想出的最好的解决方案是类似于 MVC 模式。其中 Model 是我的紧凑型数据库表示,view 是我的业务逻辑表示。但同样,这对我来说似乎不正确,因为对于这样一个简单的任务来说看起来太复杂了。是否有更优雅的方法或更简单的模式?