Odpovídáte na názor ke článku PHP Jet - Dependency Injection, továrny a tak dále.
$product = Product::get( $id );
a
$product = $product->get( $id );
se liší jen ve filozofii.
V prvém případě mám defakto globální objekt. Veškerá logika rozhodování odkud nebo dokonce co získám je definována vevnitř. Abych tuto logiku mohl nějak ovlivnit musím najít správné místo a šáhnout dovnitř. Nemohu mít dvě instance jen různě nakonfigurované (třeba porovnávat ze dvou různých zdrojů.)
V druhém případě mám instanci. Ta někde vzniká. Což má za důsledek že nejenom že to jde snadno najít, ale taky ten vznik mohu snadno nahradit za své řešení - je to jen proměnná.
Toto:
Product:setPersistance("slave")
... naka logika
Product:setPersistance("master")
... jina logika
je v celku provařená věc. V průběhu času se vám mění chování toho objektu. Velice nepříjemné. Nemám to rád.
Přečteno 21 848×
Přečteno 19 817×
Přečteno 18 835×
Přečteno 18 550×
Přečteno 17 430×