依賴注入之接口注入


書本上說:這種接口注入的方式需要調用者必須實現一個指定的接口,這種方式使用比較少,一般不推薦使用

1、項目截圖

2、打印機接口類

package com.example.demo.printer;

/**
 * Created by Admin on 2018/5/8.
 */
public interface Printer {
    void init();

    void print(String txt);
}

3、彩色打印機類

package com.example.demo.printer;

public class ColorPrinter implements Printer {
    @Override
    public void init() {
        System.out.println("啟動彩色打印機!");
    }

    @Override
    public void print(String txt) {
        System.out.println("打印彩色文字:".concat(txt));
    }
}

4、黑白打印機類

package com.example.demo.printer;

public class GrayPrinter implements Printer{

    @Override
    public void init() {
        System.out.println("啟動打印機");
    }

    @Override
    public void print(String txt) {
        System.out.println("打印黑白文字:".concat(txt));
    }
}

5、電腦類

package com.example.demo.printer;

/**
 * Created by Admin on 2018/5/8.
 */
public class Computer implements Computeable{

    Printer p;
    public Printer getP() {
        return p;
    }

    public void setP(Printer p) {
        this.p = p;
    }

    @Override
    public void inject(Printer p) {
        this.p = p;
    }
}

6、電腦實現的接口

package com.example.demo.printer;

public interface Computeable {
    void inject (Printer p);
}

7、測試類

package com.example.demo.printer;

public class TestComputer {
    public static void main(String[] args) {
        Printer p = (Printer) GetBeans.getBean("printer");
        Computer pcl = new Computer();
        pcl.inject(p);

        //實現不用new關鍵字創建打印機實例
        pcl.getP().print("打印測試頁...");
    }
}

8、配置文件

printer = com.example.demo.printer.ColorPrinter

9、效果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM