Java工厂设计模式

程序在接口和子类之间加入一个过渡类,通过此过渡类端取得接口的实例化对象,一般都会称这个过渡端为工厂类

//=================================================
// File Name       :	factory
//------------------------------------------------------------------------------
// Author          :	Common


// 接口名:Fruit
// 属性:
// 方法:
interface Fruit{
	public void eat();
}

//类名:Apple
//属性:
//方法:
class Apple implements Fruit{

	@Override
	public void eat() {
		// TODO 自动生成的方法存根
		System.out.println("eat apple!");
	}
	
}

//类名:Orange
//属性:
//方法:
class Orange implements Fruit{

	@Override
	public void eat() {
		// TODO 自动生成的方法存根
		System.out.println("eat orange!");
	}
	
}

//类名:Factory
//属性:
//方法:
class Factory{												//定义工厂类
	public static Fruit getInstance(String className){
		Fruit f = null;											//定义接口对象
		if("apple".equals(className)){			//判断是哪个类的标记
			f = new Apple();
		}
		if("orange".equals(className)){			//判断是哪个类的标记
			f = new Orange();
		}
		return f;
		
	}
}


//主类
//Function        : 	工厂设计模式
public class factory {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Fruit f = null;										//定义接口对象
		f = Factory.getInstance("apple");		//通过工厂取得实例
		f.eat();													//调用方法
	}

}

//=================================================
// File Name       :	factory
//------------------------------------------------------------------------------
// Author          :	Common


// 接口名:Fruit
// 属性:
// 方法:
interface Fruit{
	public void eat();
}

//类名:Apple
//属性:
//方法:
class Apple implements Fruit{

	@Override
	public void eat() {
		// TODO 自动生成的方法存根
		System.out.println("eat apple!");
	}
	
}

//类名:Orange
//属性:
//方法:
class Orange implements Fruit{

	@Override
	public void eat() {
		// TODO 自动生成的方法存根
		System.out.println("eat orange!");
	}
	
}

//类名:Factory
//属性:
//方法:
class Factory{												//定义工厂类
	public static Fruit getInstance(String className){
		Fruit f = null;											//定义接口对象
		try{
			f = (Fruit)Class.forName(className).newInstance();	//实例化对象
		}catch(Exception e){
			e.printStackTrace();
		}
		return f;
		
	}
}


//主类
//Function        : 	工厂设计模式
public class factory {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Fruit f = null;										//定义接口对象
		f = Factory.getInstance("Apple");		//通过工厂取得实例
		f.eat();													//调用方法
	}

}

结合属性文件的工厂模式

 

原文地址:https://www.cnblogs.com/tonglin0325/p/5241284.html