DI'nın arkasındaki konsepti anlıyorum, ancak sadece farklı IoC konteynerlerinin neler yapabileceğini öğreniyorum. Görünüşe göre çoğu insan, vatansız hizmetleri bağlamak için IoC konteynerlerini kullanmayı savunuyor, ancak bunları varlıklar gibi durum bilgisi olan nesneler için kullanmaya ne dersiniz?
Doğru ya da yanlış, bu davranış dışarıdan bir sınıf gerektirse bile, normalde varlıklarımı davranışla doldururum. Misal:
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);
}
}
Gördüğünüz gibi, bağımlılıklar Oluşturucu Eklendi. Şimdi birkaç soru için.
Varlıklarınızın ShipQuoter gibi dış sınıflara bağlı olması kötü bir uygulama olarak kabul edilir mi? Tanımı doğru anlarsam, bu bağımlılıkları ortadan kaldırmak beni anemik bir alana yönlendiriyor gibi görünüyor.
Bu bağımlılıkları çözmek ve gerektiğinde bir varlık oluşturmak için bir IoC konteyneri kullanmak kötü bir uygulama mı? Bunu yapmak mümkün mü?
Herhangi bir fikir için teşekkürler.