码迷,mamicode.com
首页 > 其他好文 > 详细

创建型模式之工厂方法

时间:2015-08-13 22:17:54      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:java   设计模式   

      工厂方法模式(Factory Method Pattern)又叫虚拟构造函数(Virtual Constructor)模式或多态性工厂(Polymorphic Factory)模式。工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建性工作推迟到子类中。 工厂模式又分为简单工厂、工厂方法和抽象工厂模式。


      工厂方法模式,英文原话为:Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantitation to subclasses.即:定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类。


      工厂方法模式代码如下:

/**
 * 抽象工厂
 * 
 * @author LYYYL
 *
 */
public interface Creator{
	public <T extends Product> T factory(Class<T> c);
}
/**
 * 抽象产品
 * @author LYYYL
 *
 */
public interface Product{
	public void method1();
	public void method2();
}
/**
 * 具体工厂
 * @author LYYYL
 *
 */
public class ConcreteCreator implements Creator{

	@Override
	public <T extends Product> T factory(Class<T> c) {
		// TODO Auto-generated method stub
		return null;
	}
}
/**
 * 具体产品
 * @author LYYYL
 *
 */
public class ConcreteProduct implements Product{

	@Override
	public void method1() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void method2() {
		// TODO Auto-generated method stub
		
	}
	
}
public class FactoryMethodDemo{
	public static void main(String[] args) {
		Creator creator = new ConcreteCreator();
		Product product = creator.factory(ConcreteProduct.class);
	}
}


      工厂方法模式的优点:1、良好的封装性,代码结构清晰;2、优秀的可扩展性;3、屏蔽产品类;4、工厂方法模式是典型的解耦框架;


      抽象工厂模式,英文原话为:Provide an interface for creating families of related or dependent objects without specifying theri concrete classes.即:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。


      抽象工厂模式的使用场景:当一个对象族都有相同的约束时,可以使用抽象工厂模式。


相关博客连接:

          

          设计模式第一课

          设计模式之设计原则学习

          设计模式之单例模式

版权声明:本文为博主原创文章,未经博主允许不得转载。

创建型模式之工厂方法

标签:java   设计模式   

原文地址:http://blog.csdn.net/yanglun1/article/details/47619089

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!