書本上說:這種接口注入的方式須要調用者必須實現一個指定的接口,這種方式使用比較少,通常不推薦使用ide
一、項目截圖測試
二、打印機接口類this
package com.example.demo.printer; /** * Created by Admin on 2018/5/8. */ public interface Printer { void init(); void print(String txt); }
三、彩色打印機類spa
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)); } }
四、黑白打印機類code
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)); } }
五、電腦類blog
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; } }
六、電腦實現的接口接口
package com.example.demo.printer; public interface Computeable { void inject (Printer p); }
七、測試類get
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("打印測試頁..."); } }
八、配置文件it
printer = com.example.demo.printer.ColorPrinter
九、效果:class