依赖注入的几种形式及场景

来源:互联网 发布:unity3d socket服务端 编辑:程序博客网 时间:2024/06/07 06:25

1、依赖的自动注入

只需要在需要的位置注入你需要的依赖,运行容器时,会自动解析依赖(包括子依赖)

2、依赖的单例注入

比如 WEB 框架中 的 Request 依赖,需要跟踪整个路由的响应周期,这就需要保持全局的单例依赖

3、依赖的契约注入

比如我们依赖 Storage,前期可能使用 FileStorage ,后期发现性能瓶颈需要使用 RedisStorage , 这时候就可以使用 Storage 接口做为契约,将具体的实现类 FileStorage/RedisStorage 通过容器绑定机制关联到 Storage 上(依赖注入 Storage),这样如果需要修改存储引擎,只需要修改绑定即可

4、标量参数关联传值

参照 Python 的传值风格,PHP 默认是不支持这种方式的,如下

function hello($name = 'john', $value){    echo $name . ' say ' . $value;}// php 中调用// hello('john', 'hello world');// python 中调用 (请不要考究上述函数代码(PHP代码))// hello(value = 'hello world')
原创粉丝点击