围绕第三方库设计我的域模型

2024-10-02 00:38:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个扑克分析工具,使用以下用例:

  1. 用户用一个方法创建策略类:输入GameState,输出PokerAction
  2. 用户运行分析脚本,在不同的策略子类(即各种策略)之间启动扑克游戏
  3. 扑克游戏生成随机牌组
  4. 扑克游戏将游戏状态发送到策略
  5. 策略使扑克游戏变为扑克游戏
  6. 扑克游戏更新游戏状态
  7. 当游戏完成后(由扑克游戏管理),将游戏结果发送到分析脚本
  8. 用户检查分析脚本的输出

有一个第三方库来执行所有的扑克游戏功能。它与我自己在某些领域对域的建模完全不匹配(例如,卡值等),但它执行了我需要的“难以编码”功能(即非常重要的步骤4-7)。在

一般设计问题 当面对这样的库时(消除了大量硬编码,但可能会限制相关项目中未来的设计选择),您是否倾向于将项目的其余部分塑造为库?您是否重构密钥库以符合您的域模型?还是别的什么?在

谢谢

迈克


Tags: 工具项目方法用户功能脚本游戏编码
2条回答

如果我真的觉得我的领域模型更适合我,我会尝试创建一个抽象层来映射第三方库和我自己的模型。这将允许我利用现在的库,同时为我提供了一个灵活性,以便将来用另一个第三方库或我创建的库替换它。在

看看这个列表design patterns,尤其是{a2}。在

我不会将我的项目与库紧密耦合,而是尝试抽象功能,并在两者之间使用一个或多个对象。这里我想到了中介和/或立面模式。在

相关问题 更多 >

    热门问题