zoukankan      html  css  js  c++  java
  • 依赖注入学习笔记(一)认识依赖注入

    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

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

    个人理解:

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

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

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

    使用依赖注入的目的:

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

  • 相关阅读:
    java获取两个日期之间的所有日期
    java实现https免证书认证
    Linux系统下安装rz/sz命令及使用说明
    Linux 7 关闭、禁用防火墙服务
    Linux下iptables 禁止端口和开放端口
    JBPM4 常用表结构及其说明
    mysql索引使用技巧及注意事项
    MySQL的btree索引和hash索引的区别
    https://www.cnblogs.com/
    Git+Gitlab+Ansible剧本实现一键部署动态网站(二)--技术流ken
  • 原文地址:https://www.cnblogs.com/jiangxiaochang/p/10905330.html
Copyright © 2011-2022 走看看