一个域对象由几个存储库“填充”

时间:2010-11-29 11:26:22

标签: domain-driven-design repository-pattern

我是DDD的新手,需要清除一些概念,以便我可以将它应用到我的项目中。

基本上,我有一个域对象“Customer”。 CustomerRepository将通过引用DAL返回此域对象。

问题是DAL无法提供“填充”客户域对象所需的所有信息。有关客户的一些信息将被其他一些外部资源获得,可能是其他一些存储库或外部Web服务。

也许我应该划分我的“客户”域对象。但是,如果我的业务逻辑不允许我这样做呢?

此外,返回域对象只是存储库的责任吗?

1 个答案:

答案 0 :(得分:1)

是的,它应该是存储库的责任。

现在存储很便宜。也许加倍数据会解决你的问题?例如,如果customer.firstname来自数据源#1但customer.lastname来自数据源#2,您可以确保在客户注册时customer.lastname存储在数据源#1中(+将更新已更新的过程)客户)?

另一件事 - 您的域模型不应该知道这个问题。你应该试着让它不知道技术问题。否则 - 你最终将失去隔离,并最终得到在那里编码的人工域对象,以使其运行。