java反射机制-工厂设计模式

工厂设计模式最大的好处是可以在应用进行解耦合操作

此处工厂设计模式结合属性文件的工厂模式,不用传入完整的包.类名称,通过属性文件的形式配置所需要的子类信息,用户可以知道一个接口有多少子类可以使用。

代码如下:

package lovechao.project;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Properties;

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("** 吃橘子");
	}
}
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 Init{//初始化
	public static Properties getPro(){
		Properties pro=new Properties();
		File f=new File("d:\\fruit.properties");
		try {
			if(f.exists()){
				pro.load(new FileInputStream(f));
			}else{
				pro.setProperty("apple", "lovechao.project.Apple");
				pro.setProperty("orange", "lovechao.project.Orange");
				pro.store(new FileOutputStream(f), "FRUIT CLASS");
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return pro;
	}
}

public class FactoryDemo {
     public static void main(String args[]){
    	 Properties pro=Init.getPro();
    	 Fruit f=Factory.getInstance(pro.getProperty("apple"));
    	 if(f!=null){
    		 f.eat();
    	 }
     }
}


你可能感兴趣的:(java复习,java反射机制,工厂设计模式)