zoukankan      html  css  js  c++  java
  • Injection的简单辨析

      依赖注入(injection)是一种对任何编程语言都有效的概念。依赖注入背后的一般概念称为控制反转。根据这个概念,类不应该静态配置其依赖项,而应该从外部配置。

    如果Java类使用此类的实例,则Java类依赖于另一个类。我们称之为_class依赖。例如,访问记录器服务的类依赖于此服务类。

    理想情况下,Java类应尽可能独立于其他Java类。这增加了重用这些类的可能性,并且能够独立于其他类测试它们。

    如果Java类通过new运算符创建另一个类的实例,则不能独立于此类使用(和测试),这称为硬依赖。以下示例显示了一个没有硬依赖关系的类。

    package com.vogella.tasks.ui.parts;
    
    import java.util.logging.Logger;
    
    public class MyClass {
    
        private Logger logger;
    
        public MyClass(Logger logger) {
            this.logger = logger;
            // write an info log message
            logger.info("This is a log message.")
        }
    }
      请注意,这个类只是一个普通的Java类,没有什么特别之处,除了避免直接创建对象。

    框架类(通常称为依赖容器)可以分析此类的依赖关系。通过此分析,它可以创建类的实例,并通过Java反射将对象注入定义的依赖项中。

    这样,Java类没有硬依赖关系,这意味着它不依赖于某个类的实例。这允许您单独测试您的类,例如通过使用模拟对象。

    模拟对象(模拟)是与真实对象相似的对象。但这些嘲笑没有编程; 它们被配置为以某种预定义的方式运行。模拟是一个英语单词,意思是模仿或模仿。

    如果使用依赖注入,则可以单独测试Java类。

     

  • 相关阅读:
    Java线程同步synchronized的理解
    MySQL基础操作(二)
    MySQL基础操作(一)
    MySQL备份--xtrabackup与mysqldump工具使用
    MySQL主从复制以及在本地环境搭建
    生活在长大——第一次冲刺小任务
    现代软件工程之敏捷开发
    入门github
    我的编程人生
    Java线程
  • 原文地址:https://www.cnblogs.com/zhuguohui/p/10550835.html
Copyright © 2011-2022 走看看