• 依赖注入的实现


    IOC:控制反转、依赖注入 (Inversion of Control)
    ·对象由容器来创建,而不是他们自己
    ·对象本身并不知道他们自己是如何被配置的
     
    IOC用到了工厂设计模式、反射技术。
     
    IOC:由容器(框架)定制程序间的关系,不必象传统实现中由程序代码直接操控,控制权转到外部容器(框架)
    ·目的:提升组件的重用概率
    依赖注入的实现—一接口注入:
    ·原理:通过定义某一类型的接口interface来标识一组功能相似的对象,并在这一组对象与其调用者间,在编译时分离,在运行时才动态加载实现类
    ·好处:使得调用者和组件对象间的依赖程度减小,提高了模块的独立性
     
    依赖注入的实现--设值注入(属性注入)、构造注入(构造方法注入)
     
    ·设值注入
    原理:通过类的setter方法完成依赖关系的设置
    好处:直观,容易
     
    ·构造注入
    原理:通过构造函数完成依赖关系的设定
    优点:通用,利用Java语言的特性,来在运行时的一开始就建立起关联
     
    ·两者比较:
    <1>设值注入的优点
    直观、自然
    对于复杂依赖的关系,如果采用构造注入,会导致构造器过于臃肿,IOC容器在创建bean实例时,需要同时实例化其依赖的全部实例,因而导致性能下降。
     
    <2>构造注入的优点
    可以在构造中决定依赖关系的注入顺序。
    对于依赖关系无须变化的bean。构造注入更有用处。
    更符高内聚的原则。
     
    例:
    public class ProString {
     
    private IGetString getStr;
     
    //构造方法注入
    //public ProString(IGetString getStr) {
    //  this.getStr = getStr;
    //}
     
    public ProString(){
     
    }
    //属性注入
    public IGetString getGetStr() {
      return getStr;
    }
     
    public void setGetStr(IGetString getStr) {
      this.getStr = getStr;
    }
     
    public String getData(){
      String s=this.getStr.getString();
      return s;
    }
  • 相关阅读:
    完全用GNU/Linux工作,摈弃Windows你我共勉
    vi编辑器的学习使用(七)
    vi编辑器的学习使用(三)
    Debian 的安装方法
    vi编辑器的学习使用(九)
    vi编辑器的学习使用(六)
    vi编辑器的学习使用(五)
    非常好的javascript:add event/ remove event
    【leetcode】NQueens
    Delphi VCL 的消息处理机制(1)
  • 原文地址:https://www.cnblogs.com/gxpblogs/p/3090968.html
Copyright © 2020-2023  润新知