简单工厂模式

package com.design.simpleFactory;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * 简单工厂设计模式 
 * 通过读取配置文件来创建实例
 * @author hm
 *
 */
public class SimpleFactory {

	public static void main(String[] args) {
		A a = Factory.createA();
		a.simpleFactory();
	}
}


/**
 * 定义一个接口
 */
interface A{
	public void simpleFactory();
}

/**
 * 第一个实现类
 */
class AImpl implements A{
	
	@Override
	public void simpleFactory() {
		System.out.println("我是AImpl实现类。");
	}
}

/**
 * 定义一个工厂
 */
class Factory{
	public static A createA(){
		
		/*读取配置文件*/
		Properties p = new Properties();
		InputStream in = null;
		
		try {
			in = Factory.class.getResourceAsStream("Factory.properties");
			p.load(in);
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		/*得到实现的类*/
		A a = null;
		try {
			a = (A) Class.forName(p.getProperty("implClass")).newInstance();
		} catch (InstantiationException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		return a;
	}
}


你可能感兴趣的:(设计模式)