代码之家  ›  专栏  ›  技术社区  ›  MikeRand

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

  •  1
  • MikeRand  · 技术社区  · 14 年前

    1. 用户用一个方法创建策略类:输入游戏状态,输出动作
    2. 用户运行分析脚本,在不同策略子类(即不同策略)之间启动扑克游戏
    3. 扑克游戏将游戏状态发送到策略
    4. 扑克游戏更新游戏状态
    5. 游戏完成后(由PokerGame管理),将GameResult发送到分析脚本

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

    一般设计问题

    谢谢,

    迈克

    2 回复  |  直到 14 年前
        1
  •  2
  •   Jeff Ogata    14 年前

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

    看看这张单子 design patterns 尤其是 Adapter Pattern

        2
  •  1
  •   Jim Brissom    14 年前

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