Loading

依赖注入学习笔记(一)认识依赖注入

1、什么是依赖注入:http://blog.phpzendo.com/?p=313

笔记摘要: 

所谓的「依赖」就是指在实现某个功能模块时需要使用另外一个(或多个)「组件」或「服务」,那么这个所需的「组件」或「服务」将被称为「依赖」。

「依赖注入」通过以构造函数参数,设值方法或属性字段等方式将具体组件传递给依赖方。

以构造函数的方式注入:

<?php class User { public function __construct($storage) { $this->storage = $storage; } // ... } $storage = new SessionStorage('SESSION_ID'); $user = new User($storage);

 其他注入形式:

以设值方法注入
<?php class User { public function setSessionStorage($storage) { $this->storage = $storage; } }
以类成员变量方式注入:
<?php class User { public $sessionStorage; } $user->sessionStorage = $storage;

 通过构造函数注入适用于必要的依赖,如上例;设值注入适用于可选的依赖,如项目需要一个缓存功能的实现。

 个人理解:

依赖注入用于类的解耦,可以提高代码的重复利用率,特别是组件或工具类的重复利用率。学习依赖注入对自身业务代码的封装理解可以有一个新的认识

 

2、依赖注入容器 http://blog.phpzendo.com/?p=318

 

「依赖注入容器」用于管理依赖的对象实例:包含依赖组件的实例化和对组件所需配置的管理。

 

个人理解:

外部调用组件时,只要配置参数,利用注入容器实例化组件,但作者举的例子只帮我理解依赖注入容器的原理,没有告诉我依赖注入容器使用的场景。

 

一般使用「依赖注入」就够了,极少数情况需要使用「依赖注入容器」。
仅当需要管理大量依赖组件的实例时,才能真正体现「依赖注入容器」的价值(比如一个框架)。

 看了文章开头。。。。也许是我还没有用到依赖注入容器需要吧~~~

 

使用依赖注入的目的:

「依赖注入」就是为了完成这样的目标:将 依赖组件 的配置和使用分离开,以降低使用者与依赖之间的耦合度。

 

posted @ 2019-05-22 14:21  江小园  阅读(239)  评论(0编辑  收藏  举报