简单工厂模式(Simple Factory),也可称做静态工厂方法模式(Static Factory Method),由一个工厂对象根据传入的参量决定创建出的哪一种产品类的实例,免除客户端直接创建产品对象的责任,实现对责任的分割。
类图:
示例代码:
public interface Product
{
}
public class ConcreteProduct
{
public ConcreteProduct(){}
}
public class Creator
{
public static Product factory()
{
return new ConcreteProduct();
}
}
缺点:
1、工厂类成了全能类,一损俱损
2、不支持复杂的产品类的层次等级结构
3、静态方法导致子类无法继承,不支持工厂的层级等级结构
源码中的应用:
1、java.text.DateFormat和java.text.SimpleDateFormat
静态方法,DateFormat.getDateInstance()
2、org.xml.sax.helpers.XMLReaderFactory和org.xml.sax.XMLReader
静态方法,XMLReaderFactory.createXMLReader()