欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

设计模式之简单工厂

程序员文章站 2024-01-21 17:26:10
...

简单工厂也是一种比较简单的设计模式,下面为简单的代码实现。

ProductFactory

工厂类,负责创建具体的产品

public class ProductFactory {
	/**
	 * 创建产品对象
	 * 使用泛型对输入参数做了两层限制:
	 * 1.必须为class类型
	 * 2.必须为Product的实现类
	 * 输入参数通常为String、Enum、Class等
	 * @param c
	 * @return
	 */
	public static <T extends Product> T createProduct(Class<T> c){
		Product product=null;
		try {
			 product = (Product)Class.forName(c.getName()).newInstance();
		} catch (Exception e) {
			
		}		
        return (T)product;		
	}

}

Product

负责定义产品的共性,实现对事物最抽象的定义

public abstract class Product {
	
	public void method1(){
	}
	
	public abstract void method2();
	
}

ConcreteProduct1

具体产品类1,继承自抽象产品类

public class ConcreteProduct1 extends Product {

	public void method2() {
		
	}

}

ConcreteProduct2

具体产品类2,继承自抽象产品类

public class ConcreteProduct2 extends Product {

	public void method2() {
		
	}

}

Client

演示代码

public class Client {
	
	public static void main(String[] args) {
		Product product = ProductFactory.createProduct(ConcreteProduct1.class);
		product.method1();
	}
}