作者crossdunk (推嘘自如)
看板PHP
标题[请益] 请问DI跟使用static的差异
时间Wed Dec 27 22:51:43 2017
标题可能说的有点不清楚
请让我补充一下
最近在学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
还请各位先进解答了
先谢谢各位先进了!
--
Sent from my 3cm
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.160.95.163
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1514386307.A.51E.html
1F:→ MOONRAKER: 阿你静态使用class就不会产生class物件了阿 12/28 11:28
2F:→ MOONRAKER: 这样就不会执行constructor 要存在service物件里的资讯 12/28 11:29
3F:→ MOONRAKER: 也没地方存 差别就像猫毛和整只猫一样 12/28 11:30
感谢您,但我想知道还有没有其他差异 QQ
※ 编辑: crossdunk (203.70.208.163), 12/28/2017 12:28:26
4F:推 Nonegrame: 我的理解是 降低耦合 有用DI 测试时能直接mock掉 class 12/28 20:26
5F:→ crossdunk: hi同事 01/31 17:52