看板 PHP 關於我們 聯絡資訊
標題可能說的有點不清楚 請讓我補充一下 最近在學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://www.ptt.cc/bbs/PHP/M.1514386307.A.51E.html
MOONRAKER: 阿你靜態使用class就不會產生class物件了阿 12/28 11:28
MOONRAKER: 這樣就不會執行constructor 要存在service物件裡的資訊 12/28 11:29
MOONRAKER: 也沒地方存 差別就像貓毛和整隻貓一樣 12/28 11:30
感謝您,但我想知道還有沒有其他差異 QQ ※ 編輯: crossdunk (203.70.208.163), 12/28/2017 12:28:26
Nonegrame: 我的理解是 降低耦合 有用DI 測試時能直接mock掉 class 12/28 20:26
crossdunk: hi同事 01/31 17:52