package homework.demo02;
/**
* Usb接口
* @author Lenovo
*
*/
public abstract interface Usb {
public static void useUsb() {
}
}
package homework.demo02;
/**
* 键盘
* @author Lenovo
*
*/
public class Keyboard implements Usb {
@Override
public void useUsb() {
System.out.println("键盘打字");
}
}
package homework.demo02;
/**
* 电脑
* @author Lenovo
*
*/
public class Computer implements Usb {
@Override
public void useUsb() {
System.out.println("电脑完游戏");
}
}
package homework.demo02;
/**
* 鼠标
* @author Lenovo
*
*/
public class Mouse implements Usb {
@Override
public void useUsb() {
System.out.println("鼠标不会动");
}
}
package homework.demo02;
public class MyUsbFactory {
//5.编写usb工厂模式
public Usb getUsb(String path) { //传入一个字符串的路径
Usb u = null;
try {
Class c = Class.forName(path);
u =(Usb) c.newInstance();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return u;
}
}
package homework.demo02;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
import java.util.Scanner;
/**
* 测试类
* @author Lenovo
*
*/
public class TestUsb {
public static void main(String[] args) throws Exception {
Scanner input = new Scanner(System.in);
//实例化对象
MyUsbFactory mf = new MyUsbFactory();
Properties pro = new Properties();
//获取路径名
pro.load(new FileInputStream("src\\usb.properties"));
System.out.println("请输入一个数字:");
String chose = input.next();
//获得到路径
String path = pro.getProperty(chose);
//通过mf调用getUsb方法 把path传回去 用Usb接收
Usb u = mf.getUsb(path);
u.useUsb();
}
}
这是properties文件
1=homework.demo02.Computer
2=homework.demo02.Keyboard
3=homework.demo02.Mouse