|
|
声明:
本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客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();}} |
|