模型/视图分离
问题描述:
假设我正在制作视频游戏。玩家有X和Y坐标,这些值是Player
对象的成员。让我们假设我正在使用假设的GAME-X
游戏引擎,它使用GX_x
和GX_y
值呈现每个对象。模型/视图分离
如果我想从视图(GAME-X
)域(Player
)分开,这是我的理解是,球员应该有自己的X
和Y
坐标被独立操纵,以及GX_x
和GX_y
只是“听”到玩家当前的坐标。这样做会允许我选择一个新的游戏引擎,同时保持域层不变。这也意味着游戏本质上可以在严格的域级上运行。
这是一个很好的设计策略吗?如果不是,为什么?如果是这样,那么这个策略的真名是什么?我如何在整个系统中改进它?
答
球员应该有自己的X和Y坐标被独立操纵 和GX_x和GX_y只是“听”到玩家的 当前坐标。
这是正确的策略。由于GX_x
,GX_y
是演示级别,可以是设备/分辨率/引擎特定的。
考虑2个电话,分辨率为480*320
和960*640
。您的模型中的x
,y
应该是相同的(两个手机中运行相同的代码),而GX_x
和GX_y
在两个设备上都不相同。
这是你正在谈论的Model View Controller模式。
选择新的游戏引擎,同时保持域图层不变。它也意味着游戏本质上可以运行在严格域名 的关卡中。
这些是使用模式的优点和原因。