Využij akce až 30 % zdarma při nákupu e-learningu. Více informací. Zároveň je tento týden sleva až 80 % na e-learning týkající se C# .NET
Hledáme nového kolegu do redakce - 100% home office, 100% flexibilní pracovní doba. Více informací.
discount week 30 halloween
Avatar
Tommy
Člen
Avatar
Tommy:17.3.2014 20:46

V akej situácií je vhodné použiť Constructor Injection a v ktorej Method Injection?

 
Odpovědět
17.3.2014 20:46
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Tommy
David Čápka:17.3.2014 20:50

O MethodInjection jsem ještě neslyšel, většinou se dělá přes konstruktor nebo property. Nějak mě nenapadá využití a co jsem googlil, tak všude mají v examplu metodu init(), což supluje za konstruktor.

Nahoru Odpovědět
17.3.2014 20:50
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Tommy
Člen
Avatar
Tommy:17.3.2014 21:02

Neviem, či tomu správne rozumiem. Ale method injection by sa mala použiť napr. v takom prípade, že potrebujem aplikovať len nejaké pravidlá.

No to je len moja domnienka.

Prikladám úkažku:
public class ProductService
{
private IProductRepository _productRepository;
public ProductService(I­ProductReposi­tory productRepository)
{
_productRepository = productRepository;
}
public IEnumerable<Pro­duct> GetProductsAn­dApplyDiscount(
IProductDiscou­ntStrategy discount)
{
IEnumerable<Pro­duct> products = _productReposi­tory.FindAll();
foreach (Product p in products)
p.AdjustPrice­With(discount);
return products;
}
}

Editováno 17.3.2014 21:03
 
Nahoru Odpovědět
17.3.2014 21:02
Avatar
Drahomír Hanák
Redaktor
Avatar
Odpovídá na Tommy
Drahomír Hanák:17.3.2014 21:08

Constructor Injection se mně osobně zdá nejčistší způsob předávání závislostí. Například proto, že bez závislostí pak nelze ten objekt vytvořit, je na první pohled jasné, na čem objekt závisí atp. V některých případech to třeba může být ukazatel na porušení Single Responsibility (když toho objekt dělá moc a má tak spoustu závislostí). Využít ho někdy ale nejde (např. nechci ho v daném případě použít) a pak bych použil Setter Injection. Je to ale můj subjektivní názor.

 
Nahoru Odpovědět
17.3.2014 21:08
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.