我的工作有以下用例扑克分析工具:设计围绕一个第三方库我的域模型
- 用户创建策略类的一种方法:输入游戏状态,输出PokerAction
- 用户运行分析脚本以启动各种策略亚类之间的PokerGame(即各种策略)
- PokerGame生成随机甲板
- PokerGame发送游戏状态到策略
- 斯特拉特埃及将PokerAction到PokerGame
- PokerGame更新游戏状态
- 当游戏完成(由PokerGame管理),发送GameResult来分析脚本
- 用户评论分析脚本的输出
有一个第三方图书馆,执行所有的PokerGame功能。它与我在某些领域对域的建模(例如卡片值等)完全不匹配,但执行我所需的大部分“难以编码”功能(即非重要的步骤4 - 7)。
一般设计问题 当面对这样的库(省去了大量硬编码的,但可能会限制在相关项目未来的设计选择),你倾向于你的项目的其余部分模具库?您是否重构了关键库以符合您的域模型?或者是别的什么?
感谢,
迈克
谢谢。我在Facade上选择了Adapter,因为我不确定我有一个“更简单”的界面是多么重要。 – MikeRand 2010-09-22 15:14:10