Je comprends le concept derrière DI, mais je suis en train d'apprendre quels sont les différents conteneurs IoC peut faire. Il semble que la plupart des personnes recommandent à l'aide du Cio conteneurs fil des apatrides services, mais qu'en les utilisant pour la dynamique des objets comme des entités?
Si c'est bon ou mauvais, normalement, je stuff mon entités de comportement, même si ce comportement implique un en dehors de la classe. Exemple:
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);
}
}
Comme vous pouvez le voir, les dépendances sont Constructeur Injecté. Maintenant, pour un couple de questions.
Est-il considéré comme une mauvaise pratique d'avoir votre entités dépendent de l'extérieur des classes comme le ShipQuoter? L'élimination de ces dépendances semble me conduire vers une anémie de domaine, si je comprends correctement la définition.
C'est une mauvaise pratique d'utiliser un conteneur IoC pour résoudre ces dépendances et de construction d'une entité lorsque nécessaire? Est-il possible de faire cela?
Merci pour toute la perspicacité.