zoukankan      html  css  js  c++  java
  • DI的3种实现方式

    编写用来获取数据的接口

    public interface DataBase{

      //改方法用来获取数据

      public void getData();

    }

    编写具体负责获取数据的类

    public class SqlDataBase1 implement DataBase{

      //该方法1用来获取数据

      public void getData(){

        //以下是具体获取数据的代码

      }

    }

    public class SqlDataBase2 implement DataBase{

      //该方法2用来获取数据

      public void getData(){

        //以下是具体获取数据的代码

      }

    }

    1.接口注入

     1.1编写一个接口

    public interface IBuiness{

      public void createDI(DataBase);

    }

    1.2实现这个接口

    public class Buiness implement IBuiness{

      private DataBase db;

      public void createDI(DataBase db){

        this.db=db;

      }

      public void getData(){

        db.getData();

      }

    }

    1.3测试Test

    public class TestBuiness{

      private Buiness buiness=new Buiness();

      public void getData(){

        buiness.createDI(new SqlDataBase2());

        buiness.getData();

      }

    }

    2.Set注入

    2.1编写业务逻辑类

    public class Buiness{

      private DataBase db;

      public void setDataBase(DataBase db){

        this.db=db;

      }

      public void getData(){

        db.getData();

      }

    }

    2.2测试Test

    public class Test{

      private Buiness buiness=new Buiness();

      public void getData(){

        buiness.setDataBase(new SqlDataBase1());

        buiness.getData();

        buiness.setDataBase(new SqlDataBase2());

        buiness.getData();

      }

    }

    3.构造注入

     public class Buiness{

      private DataBase db;

      public Buiness(DataBase ab){

        this.db=db;

      }

      public void getData(){

        db.getData();

      }

     }

    3.2测试Test

    public void Test(){

      private Buiness buiness;

      public void getData(){

        buiness=new Buiness(new SqlDataBase1());

        buiness.getData();

      }

    }

  • 相关阅读:
    farpoint [转]
    用于主题检测的临时日志(07ebc2e2418343fea17b52c9318e7705 3bfe001a32de4114a6b44005b770f6d7)
    将ColumnFooter显示出来,并对相关属性做适当设置。 SetAggregationType接口可以帮助你方便的完成求和需求。
    单元测试
    c#扩展方法
    String.Format格式说明
    vs 2005断点调试[转]
    EventLog 类【转】
    From Single PDF template Make a series PDF
    PDF template and print
  • 原文地址:https://www.cnblogs.com/LuoPengSdok/p/11394180.html
Copyright © 2011-2022 走看看