모순되지 않습니다. 두 제안자는 실제 코드를 도메인 객체 자체에 넣기를 원합니다.
즉.
public class Order
{
private string status = "not bought";
public void Buy()
{
this.status = "bought";
}
}
vs ADM
public class Order
{
public string Status = "not bought";
}
public class BuyingService
{
public Order Buy(Order order)
{
Order o = new Order();
o.status = "bought";
return o;
}
}
주사 서비스 대
public class Order
{
public Order(IBuyingService bs)
{
_bs = bs;
}
private IbuyingService _bs;
private string status = "not bought";
public void Buy()
{
this.status = _bs.Buy();
}
}
public class BuyingService : IBuyingService
{
public string Buy()
{
return = "bought";
}
}
솔직히 각 접근 방식에는 장점과 단점이 있습니다. 당신이 선택한 것은 주로 개인적인 취향의 문제입니다