【发布时间】:2014-06-16 11:41:21
【问题描述】:
我有一个域服务需要应用一些影响基础设施层的规则,因为它们是域要求。简而言之:基础设施政策和战略。
public MyService : IMyService {
private readonly RetryPolicy<ConnectionErrorDetectionStrategy> _retryPolicy;
// there might be other strategies for other concerns
private readonly IRepository _repository;
public MyService(IRepository repository) {
_repository = repository;
_retryPolicy = new RetryPolicy<ConnectionErrorDetectionStrategy>();
}
public Do() {
_repository.CrudMagic();
_retryPolicy.ExecuteAction(() => _repository.Commit());
}
}
要求是确保在某些情况下(case),当应用程序连接失败时(policy ) 到数据库。然而,这感觉很尴尬,因为域不知道连接是什么(整个 DAL 甚至可能是一个模拟!)。如何确保针对此特定服务/案例应用正确的策略?
【问题讨论】:
标签: database domain-driven-design