这样, 顶层代码不关注底层到底是由哪个服务来发送邮件--不管是 Mandrill, Mailgun 还是 SendMail, 都不重要, 因为所有 mailer 类都实现相同的接口....冲突
假如只是对象中的某一个方法需要用到注入的类呢? 构造函数会因为很多只用到一次的注入变得非常凌乱.
另一种情况, 假如需要通过注入类执行某些操作, 但只针对特定的方法执行呢?...解决方案
上述问题的解决方案就是方法注入: 类似构造函数注入, 但允许容器要调用某个方法的时候直接给该方法注入依赖项.
我觉得方法注入最普遍的应用场景就是控制器(controllers)....public methods 映射到路由, 用户访问对应的路由时, 容器会调用这些方法, 并自动注入指定的依赖项....容器在什么时候会解析方法
前文介绍的控制器方法会被容器解析. ServiceProvider 的 boot 方法也会. 实际上你可以根据你的需要指定容器对任何方法进行解析.