java反射机制理解--工厂模式
package test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Properties;
import java.util.Scanner;
interface Fruit{
public void eat();
}
class Apple implements Fruit{
public void eat(){
System.out.println("Apple");
}
}
class Orange implements Fruit{
public void eat(){
System.out.println("Orange");
}
}
class Factory{
public static Fruit getInstance(String className){
Fruit fruit = null;
try {
fruit = (Fruit) Class.forName(className).newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return fruit;
}
}
class GetProperties{
public static Properties getPro(){
Properties properties = new Properties();
File file = new File("D:/Eclipise(workspace)/Test/src/test/fruit.properties");
if (file.exists()) {
try {
properties.load(new FileInputStream(file));
} catch (Exception e) {
e.printStackTrace();
}
}else {
properties.setProperty("apple", "test.Apple");
properties.setProperty("orange", "test.Orange");
try {
properties.store(new FileOutputStream(file), "FRUIT CLASS");
} catch (Exception e) {
e.printStackTrace();
}
}
return properties;
}
}
public class Demo_03 {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String pro = in.nextLine();
Properties properties = GetProperties.getPro();
Factory.getInstance(properties.getProperty(pro)).eat();;
}
}

浙公网安备 33010602011771号