`
bluepopopo
  • 浏览: 91680 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

设计模式 - 工厂方法

    博客分类:
  • J2EE
阅读更多
重温了一下factory pattern,赶紧记录之 -

Simple Factory pattern:

将变化的对象创建方法转移到单独的类中。需要传入参数,一般情况下已经够用。唯一的问题就是增加产品类别,需要改动工厂类。扩展优先于修改呀!
	public Product createProduct(int type)
	{
		switch (type)
		{
		case 1:
			return new ProductA();
		case 2:
			return new ProductB();
		default:
			return null;
		}
	}


Factory Method pattern:


将具体产品的创建延迟到子类工厂创建。子工厂只负责自己产品的创建,上层父工厂不再关心如何产生各种产品。如此一来,便达到了依赖倒置 
public interface FactoryMethod
{
	Product createProduct();
}
public class ConcreteFactoryMethodA implements FactoryMethod
{

	public Product createProduct()
	{
		// TODO Auto-generated method stub
		return new ProductA();
	}
}

Abstract Factory Method:

有点混淆,与上一个相似,区别在于主要用于多种相似产品的创建,而每一个产品的创建则使用了Factory Method pattern。
public interface AbstractFactory
{
	Product createProduct();
	Byproduct createByproduct();
}
public class ConcreteAbstractFactoryA implements AbstractFactory
{
	public Product createProduct()
	{
		// TODO Auto-generated method stub
		return new ProductA();
	}
	public Byproduct createByproduct()
	{
		// TODO Auto-generated method stub
		return new ByproductA();
	}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics