????:<?php class Shop { public function today() { return "不打折";
<?php class Shop { public function today() { return "不打折"; } public function yesterday() { return "打9折"; } } class Myshop { private $shop = null; public function __construct(Shop $shop) { $this->shop = $shop; } public function message() { return "別人家的商店:".$this->shop->today(); } } $shop = new Shop; $message = new Myshop($shop); echo $message->message();
解除類(lèi)與類(lèi)之間高度的耦合性,降低類(lèi)與類(lèi)之間的依賴(lài)關(guān)系
當(dāng)代碼需要變動(dòng)的時(shí)候,使用依賴(lài)注入可以減小工作量,減少需要修改的地方
?? ???:天蓬老師?? ??:2019-08-22 15:34:49
???? ??:依賴(lài)注入的本質(zhì)就是將外部依賴(lài)對(duì)象通過(guò)參數(shù)注入到當(dāng)前對(duì)象中, 外部對(duì)象的實(shí)例化是個(gè)重點(diǎn), 為了它, 大家想盡了辦法, 例如工廠模式, 抽象工廠, 容器等, 目前主流是采用服務(wù)容器來(lái)管理對(duì)象以及對(duì)象之間的依賴(lài)關(guān)系, 這和java非常類(lèi)似