• Spring 依赖注入


    未使用Spring之前,可以这样管理两个类之间的依赖关系:

    public class TextEditor {
       private SpellChecker spellChecker;  
       public TextEditor() {
          spellChecker = new SpellChecker();
       }
    }

    带来的问题是,SpellChecker的实现类与TextEditor的使用类耦合在一起了,如果变换了一种SpellChecker的实现方式,需要同步修改TextEditor的代码,不利于单元测试、也不利于后期功能的扩展

    解决方式是解耦,即将TextEditor主动new SpellChecker的地方,转成被动的获取,通过暴露对外方法,来将具体的实现类对象传入TextEditor中,实现方式有两种:

    一种是通过TextEditor的构造方法,在初始化TextEditor时将依赖传入:

    public class TextEditor {
       private SpellChecker spellChecker;
       public TextEditor(SpellChecker spellChecker) {
          this.spellChecker = spellChecker;
       }
    }

    另一种方式是通过set方法来实现。这也是在使用Spring的过程中常用的方式,将依赖关系委托给Spring容器来管理

  • 相关阅读:
    深度学习面试问题
    重新学习pytorch的库函数等..
    新电脑的操作系统win10的所有设置问题汇总
    二叉搜索树,和红黑树,
    Most common words
    Word histogram
    Random numbers
    Word frequency analysis
    DSU
    Sequences of sequences
  • 原文地址:https://www.cnblogs.com/aligege/p/10653747.html
Copyright © 2020-2023  润新知