回顾
13.2.2 接口的使用原则
学习小结
13.2.3 接口的作用——制定标准
接口是标准,而标准指的是,各方共同遵守的一个守则。
范例:
package com.Javastudy2;
/**
* @author Y.W.
* @date 2018年2月27日 下午8:43:57
* @Description TODO 接口制定标准
*/
public class P340 {
public static void main(String[] args) {
Computer com = new Computer();
com.plugin(new Print()); // 在电脑上使用打印机
com.plugin(new Flash()); // 在电脑上使用U盘
}
}
interface USB { // 定义USB接口的标准
public void work(); // 拿到USB设备就表示要进行工作
}
class Computer {
public void plugin(USB usb) {
usb.work(); // 按照固定的方式进行工作
}
}
class Print implements USB { // 打印机实现了USB接口标准
public void work() {
System.out.println("打印机用USB接口,连接开始工作");
}
}
class Flash implements USB { // U盘实现了USB接口标准
public void work() {
System.out.println("U盘使用USB接口,连接开始工作");
}
}
运行结果:
13.2.4 接口的作用——工厂设计模式(Factory)
范例:
package com.Javastudy2;
/**
* @author Y.W.
* @date 2018年2月27日 下午10:02:19
* @Description TODO 接口的作用
*/
public class P342_13_11 {
public static void main(String[] args) {
Fruit f = new Apple();
f.eat();
}
}
interface Fruit { // 定义一个水果标准
public void eat(); // 吃
}
class Apple implements Fruit {
public void eat() {
System.out.println("吃苹果。");
}
}
class Orange implements Fruit {
public void eat() {
System.out.println("吃橘子。");
}
}
运行结果:
把上面的代码改工厂模式,范例:
package com.Javastudy2;
/**
* @author Y.W.
* @date 2018年2月28日 上午07:30:19
* @Description TODO 接口的工厂模式
*/
public class P342_13_12 {
public static void main(String[] args) {
Fruit1 f = Factory.getlnstance("orange"); // 初始化参数
f.eat();
}
}
interface Fruit1 { // 定义一个水果标准
public void eat(); // 吃
}
class Apple1 implements Fruit1 {
public void eat() {
System.out.println("吃苹果。");
}
}
class Orange1 implements Fruit1 {
public void eat() {
System.out.println("吃橘子。");
}
}
class Factory { // 此类不需要维护属性状态
public static Fruit1 getlnstance(String className) {
if ("apple".equals(className)) {
return new Apple1();
}
if ("orange".equals(className)) {
return new Orange1();
}
return null;
}
}
运行结果:
在开发代码中,遇见了取得接口对象实例的操作,都应该采用工厂设计模式,避免接口与具体的子类耦合问题。
思考
接口的具体使用还是比较多变的,注意事项也很多。下一篇代理设计模式。