package d;
/**
* 工厂设计模式
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.*;
interface Friut
{
void eat();
}
class Apple implements Friut
{
public void eat()
{
System.out.println("** 吃苹果");
}
}
class Orange implements Friut
{
public void eat()
{
System.out.println("** 吃桔子");
}
}
class Factory
{
public static Friut getFriut(String friutName)
{
Friut friut=null;
try
{
friut=(Friut) Class.forName(friutName).newInstance();
}
catch (Exception e)
{
}
return friut;
}
}
class Init
{
public static Properties getPro()
{
Properties pro =null;
try
{
pro=new Properties();
File fr=new File("fruit.ini");
if(fr.exists())
{
pro.load(new FileInputStream(fr));
}
else
{
pro.setProperty("apple", "d.Apple");
pro.setProperty("orange", "d.Orange");
pro.store(new FileOutputStream(fr),"FRIUT CLASS");
}
}
catch (Exception e)
{
}
return pro;
}
}
public class FactoryTest
{
public static void main(String[] args)
{
Friut friut=null;
Properties pro=Init.getPro();
friut=Factory.getFriut(pro.getProperty("orange"));
if(friut!=null)
{
friut.eat();
}
}
}