读《研磨设计模式》-代码笔记-简单工厂模式

声明:
本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/



package design.pattern;

/*
 * 个人理解:简单工厂模式就是IOC;
 * 客户端要用到某一对象,本来是由客户创建的,现在改成由工厂创建,客户直接取就好了
 */
interface IProduct {
	void desc();
}


class ProductImplA implements IProduct {
	public void desc() {
		System.out.println("Product A");
	}
}


class ProductImplB implements IProduct {
	public void desc() {
		System.out.println("Product B");
	}
}


class Factory {
	
	//可以把这个方法定义成static类型的,那Factory这个类就成为一个工具类了,称为静态工厂模式
	public IProduct createProduct(int type) {
		IProduct product = null;
		
		/*究竟要创建哪一类型的Product,一般有几种:
		 * 1.直接传递参数,像下面的代码那样
		 * 2.在properties文件里面配置要创建的类名(全类名,包括包名,以便反射),读取文件,得到类名,反射生成实例
		 * 3.根据数据库的参数创建
		 * 4.为不同的产品提供不同的方法:createProductA(); createProductB()...
		 */
		if (type == 1) {
			product = new ProductImplA();
		} else if (type == 2) {
			product = new ProductImplB();
		}
		return product;
	}
}


public class SimpleFactoryPattern {

	public static void main(String[] args) {
		Factory f = new Factory();
		int type = 1;
		IProduct product = f.createProduct(type);
		product.desc();

	}

}

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