[请益] 请问LARAVEL中DI跟使用static的差异

楼主: crossdunk (推嘘自如)   2017-12-27 22:51:43
标题可能说的有点不清楚
请让我补充一下
最近在学laravel,看到了service及repository的设计方式
其中service依赖注入到了controller,而repository注入到了service
但看了很多有关依赖注入的文章,还是有看没有懂
想请问DI跟static的差异有哪些地方呢?
如果我在controller直接使用service::method()的话

====================================
__construct(service $service)
并$this->service = $service
$this->service->method
===================================
会有什么差别呢?
小弟目前只想到使用static的话会只使用到该method
用DI的话则会实现整个class
还请各位先进解答了
先谢谢各位先进了!
作者: MOONRAKER (㊣牛鹤鳗毛人)   2017-12-28 11:28:00
阿你静态使用class就不会产生class物件了阿这样就不会执行constructor 要存在service物件里的资讯也没地方存 差别就像猫毛和整只猫一样
作者: Nonegrame (程式写得好,好人做到老)   2017-12-28 20:26:00
我的理解是 降低耦合 有用DI 测试时能直接mock掉 class

Links booklink

Contact Us: admin [ a t ] ucptt.com