我试图找出将我的实用程序类放在基于DDD的项目中的位置。案例如下:
我有一个名为CookieAwareWebClient的类,它是核心工作所必需的。从我在线阅读的内容看来,这似乎属于基础架构层中的一个类,但是不应该从Core层引用基础架构层。这意味着我无法在基础架构层中放置Core层所依赖的功能。那么这个CookieAwareWebClient类应该放在哪里?
答案 0 :(得分:1)
如果不完全理解你需要做什么,我相信@plalx会在评论中总结出来:
这里有一些代码(在这种情况下是C#),以构造函数注入为例:
界面:
namespace Core
{
public interface IBlah
{
int SomethingCoreNeeds();
}
}
CookieAwareWebClient的实现:
namespace Services
{
public class CookieAwareWebClient : IBlah
{
// ... rest of class
private int _somethingCookieAwareWebClientHasThatCoreNeeds;
public int SomethingCoreNeeds()
{
return _somethingCookieAwareWebClientHasThatCoreNeeds;
}
// ... rest of class
}
}
Core中的消费服务:
namespace Core
{
public class DomainService
{
private readonly IBlah _blah;
public DomainService(IBlah blah)
{
_blah = blah;
}
public void DoSomething(DomainEntity entity)
{
entity.NeededValue = _blah.SomethingCoreNeeds();
}
}
}