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();;
}
}

posted @ 2017-12-28 18:08  一个有梦想的  阅读(103)  评论(0)    收藏  举报