工厂方法模式(Factory Method),又称为虚拟构造子模式(Virtual Constructor)或者多态性工厂模式(Polymorphic Factory),定义一个用于创建产品对象的工厂接口,将实际创建工作推迟到子类中,允许在不修改具体工厂角色的情况下引进新的产品。
类图:
示例代码:
public interface Creator
{
public Product factory();
}
public class ConcreteCreator1 implements Creator
{
public Product factory()
{
return new ConcreteProduct1();
}
}
public class ConcreteCreator2 implements Creator
{
public Product factory()
{
return new ConcreteProduct2();
}
}
public interface Product
{
}
public class ConcreteProduct1 implements Product
{
public ConcreteProduct1()
{
}
}
public class ConcreteProduct2 implements Product
{
public ConcreteProduct2()
{
}
}
源码中的应用:
1、java.util.Collection和java.util.Iterator
工厂方法,Collection.iterator();
2、java.util.List和java.util.ListIterator
工厂方法,List.listIterator();
3、java.net.URL和java.net.URLConnection
工厂方法,URL.openConnection();