粗粒度数据API应该如何影响我的域模型?

时间:2014-10-24 18:22:06

标签: domain-driven-design business-logic infrastructure anemic-domain-model conform

我天生很兴奋在我目前的项目上练习DDD,所以我开始认识和修饰我们无处不在的语言,并为几个子域创建了实验域模型。但是,当我尝试实现某些setter和存储库时遇到了困难。

我希望我的域模型封装业务逻辑,但我限制在一个数据API上执行大部分业务逻辑,包括在另一台服务器上执行不变量。 API也不会在普遍存在的语言所建议的粒度级别上公开模型和操作。业务逻辑所需的一些数据甚至不会被API公开。

这些基础设施问题有可能污染我的领域模型并使其变得贫血。构建反腐败层将是一项艰巨的任务,可能需要对API进行攻击。似乎我必须放弃DDD,而是建立一个带有服务类的贫血模型。这种情况应采用哪些原则,模式或做法?

我能找到的最好的是"顺从者"在Eric Evans' 领域驱动设计:解决软件核心的复杂性。他将我的情况描述为上游/下游关系,其中上游没有动力提供下游团队的需求"以及其中"根据需要定制的界面下游团队不在卡片中。"他建议,"通过盲目地坚持上游团队的模型来消除[反腐层]的复杂性。"

埃文斯继续承认顺从主义方法的陷阱。它:

  • "扼杀下游设计师的风格"
  • "不会为应用程序提供理想的模型"
  • "将您的应用程序限制为上游模型的功能 - 加上纯粹的附加增强功能"
  • "在情感上非常缺乏吸引力" (我最喜欢的)

我希望得到进一步的了解,特别是对于这种符合性的有用代码/设计技术。

0 个答案:

没有答案