19.接口的应用
- 为什么要使用接口?
- 工厂方法模式
- 使用了接口,静态函数,向上转型
- 思路:使用new来调用构造函数的代码,把他封装在工厂类当中
- 对于使用者来讲,只需要调用和修改工厂就可以了
interface Printer{publicvoid open();publicvoid close();publicvoid print(String s);}
classHPPrinter implements Printer{publicvoid open(){System.out.println("HP open");}publicvoid close(){System.out.println("HP close");}publicvoid print(String s){System.out.println("HP print---->"+ s);}}
classCanonPrinter implements Printer{privatevoid clean(){System.out.println("clean");}publicvoid close(){this.clean();System.out.println("Canon close");}publicvoid open(){System.out.println("Canon open");}publicvoid print(String s){System.out.println("Canon print---->"+ s);}}
classPrinterFactory{publicstaticPrinter getPrinter(int flag){Printer printer = null;if(flag ==0){printer =newHPPrinter();}elseif(flag ==1){printer =newCanonPrinter();}return printer;}}
classTest{publicstaticvoid main(String args []){//根据用户的选择,生成相应的打印机对象//并且向上转型为Printer类型//Printer getPrinter(int flag)int flag =0;Printer printer =PrinterFactory.getPrinter(flag);printer.open();printer.print("test");printer.close();}}
结果:
D:\work\src>javac *.java
D:\work\src>java Test
HP open
HP print---->test
HP close

浙公网安备 33010602011771号