漫谈设计模式(四)工厂(Factory)模式

有类型区分的工厂模式


Factory类


package com.model.factory;

public interface Factory {

	int TYPE1 = 10000;
	int TYPE2 = 20000;
	int TYPE3 = 30000;
	int TYPE4 = 40000;
	int TYPE5 = 50000;

	Product createProduct(Integer type);

}



package com.model.factory;

public interface Product {

}




package com.model.factory;

public class ConcreteFactory implements Factory {



	@Override
	public Product createProduct(Integer type) {
		Product product=null;
		switch (type) {
		case TYPE1:
			product=new WoodProduct();
			break;

		default:
			product= new ConcreteProduct();
			break;
		}
		return product;
	}


}




package com.model.factory;

public class ConcreteProduct implements Product {

}





package com.model.factory;

public class WoodProduct implements Product {

	
}




测试类

package com.model.factory;

public class Client {

	private Factory factory;

	public Client(Factory factory) {
		this.factory = factory;
	}

	public void doSomething() {
		Product product = factory.createProduct(Factory.TYPE1);
		// do someThing
	}

	public static void main(String[] args) {
		Client client = new Client(new ConcreteFactory());
		client.doSomething();
	}

}






猜你喜欢

转载自buyaozaibeidaole.iteye.com/blog/2249117