java接口的应用(第29集)
来源:互联网 发布:车工钳工 知乎 编辑:程序博客网 时间:2024/05/18 02:12
以下内容来自marschen的java4android视频教程
本集主要内容
1.为什么要使用接口。
2.工厂方法模式。
接口其实定义了一种标准。
实现接口。
实例1 如下.
一个printer接口, 一个HPPrinter类, 一个CanonPrinter类.还有一个Test类.
//Printer 接口interface Printer{public void open();public void close();public void print(String s);}
//HPPrinter 类class HPPrinter implements Printer{public void open(){System.out.println("HP open");}public void close(){System.out.println("HP close");}public void print(String s){System.out.println("HP print--->"+s );}}
//CanonPrinter 类class CanonPrinter implements Printer{private void clean(){System.out.println("Canon Priter clean");}public void close(){this.clean();System.out.println("Canon close");}public void open(){System.out.println("Canon open");}public void print(String s ){System.out.println("Canon Print--->"+s);}}
class Test{public static void main(String args[]){//根据用户的选择,生成相应的打印机对象 //并且向上转型为Printer类型。//Printer getPrinter(int flag);Printer printer = null;int flag = 1;if(flag == 0){printer = new HPPrinter();//向上转型}else if(flag ==1){printer = new CanonPrinter();//向上转型}printer.open();printer.print("test");printer.close();}}
上面的程序还有很多问题,在Test 类,生成对象的代码重复出现.
下面用
简单静态工厂方法模式.
Printer
| | PrinterFactory
HPPrinter CanonPrinter
再改动一下上面的代码.
增加一个PrinterFactory类
class PrinterFactory{public static Printer getPrinter(int flag){Printer printer = null;if(flag == 0){printer = new HPPrinter();//向上转型}else if(flag ==1){printer = new CanonPrinter();//向上转型}else if(flag ==2){printer = new XXXPrinter();//向上转型}return printer;}}
在Test类,这样做.
class Test{public static void main(String args[]){//根据用户的选择,生成相应的打印机对象 //并且向上转型为Printer类型。int flag = 2;Printer printer = PrinterFactory.getPrinter(flag);printer.open();printer.print("test");printer.close();}}
所以以再增加打印机.只需要增加一个打印机.如添加XXXPrinter打印机.
//XXXPrinter 类class XXXPrinter implements Printer{public void open(){System.out.println("XXX open");}public void close(){System.out.println("XXX close"); }public void print(String s){System.out.println("XXX print--->"+s );}
在PrinterFactory里面添加.
else if(flag ==2){printer = new XXXPrinter();//向上转型}
无需对打印机的调用代码进行修改...
- java接口的应用(第29集)
- Java 学习第7天(1) 接口的应用
- java接口的应用
- JAVA 接口的应用
- java的接口的应用
- java接口的高级应用
- JAVA学习--接口的应用
- Java中接口的应用
- Java Interface接口的应用
- java-接口的基本语法(第28集)
- Java中接口的应用 && 介绍
- Java Interface接口的简单应用
- java 笔记------instanceof、抽象、接口的应用
- JAVA接口 ,抽象类的应用
- JAVA学习--接口的应用:代理模式
- java 面向对象接口的应用
- java的接口应用之事件通知
- Java接口的游戏实战应用
- 黑马程序员——>第二十四天<网络编程(TCP-Tomcat)>
- 【POJ】3720 Occurrence of Digits
- word2007中多级标题的设置和目录的自动生成
- 黑马程序员——><基础加强一(eclipse-静态导入-享元设计模式-自动拆装箱-枚举-反射-类加载器)>
- 黑马程序员——><基础加强二(内省-注解-泛型-类加载器-代理)>
- java接口的应用(第29集)
- 类继承中的重载,覆盖和隐藏
- 基于多软件的STK模型转换应用研究
- 面试题(交通灯管理系统)
- 图解无约而来Win7 33in1 V1.3 32位与64位合一(版本齐全装机利器)
- 面试题(银行叫号业务系统)
- 设计模式之三:Bridge模式
- hdu 1358 Period
- 传统的过程性编程与OOP编程的区别