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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章