DI의 개념을 이해하지만 다른 IoC 컨테이너가 무엇을 할 수 있는지 배우고 있습니다. 대부분의 사람들은 상태 비 저장 서비스를 연결하기 위해 IoC 컨테이너를 사용하는 것을 옹호하는 것처럼 보이지만 엔티티와 같은 상태 저장 객체에 사용하는 것은 어떻습니까?
그것이 옳든 그르 든, 나는 그 행동에 외부 클래스가 필요하더라도 일반적으로 내 엔티티에 행동을 채운다. 예:
public class Order : IOrder
{
private string _ShipAddress;
private IShipQuoter _ShipQuoter;
public Order(IOrderData OrderData, IShipQuoter ShipQuoter)
{
// OrderData comes from a repository and has the data needed
// to construct order
_ShipAddress = OrderData.ShipAddress; // etc.
_ShipQuoter = ShipQuoter;
}
private decimal GetShippingRate()
{
return _ShipQuoter.GetRate(this);
}
}
보시다시피 종속성은 Constructor Injected입니다. 이제 몇 가지 질문입니다.
엔티티가 ShipQuoter와 같은 외부 클래스에 의존하도록하는 것이 나쁜 습관으로 간주됩니까? 이러한 종속성을 제거하면 정의를 올바르게 이해하면 빈혈 영역으로 연결되는 것 같습니다.
IoC 컨테이너를 사용하여 이러한 종속성을 해결하고 필요할 때 엔터티를 구성하는 것이 나쁜 습관입니까? 이것이 가능합니까?
통찰력을 가져 주셔서 감사합니다.