简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。
实现:

工厂类:
public class Creator
{
public static Product factory()
{
return new ConcreteProduct();
}
}
抽象产品:
public interface Product
{
}
具体产品:
public class ConcreteProduct implements Product
{
public ConcreteProduct(){}
}
实现要点:
特例:
如果只有一个具体产品的话,抽象产品可以省略

在某些情况下,可以由抽象产品扮演工厂类的角色,典型的应用就是java.text.DateFormat,一个抽象产品担当子类的工厂

如果抽象产品再省略的话,可以做到三者合并,这样一个产品类为自身的工厂

优点:
模式的核心是工厂类。工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例。而客户端则可以免除直接创建产品的责任,而仅仅负责“消费”产品。
缺点:
在java中的应用:
DateFormat和sax2库中的XMLReaderFactory