设计模式(二)---工厂方法模式
工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。
抽象工厂源代码
public interface Creator
{
/**
* 工厂方法
*/
public Product factory();
}
抽象产品源代码
public interface Product
{
}
具体工厂1源代码
public class ConcreteCreator1 implements Creator
{
/**
* 工厂方法
*/
public Product factory()
{
return new ConcreteProduct1();
}
}
具体工厂2源代码
public class ConcreteCreator2 implements Creator
{
/**
* 工厂方法
*/
public Product factory()
{
return new ConcreteProduct2();
}
}
具体产品1源代码
public class ConcreteProduct1 implements Product
{
public ConcreteProduct1()
{
//do something
}
}
具体产品2源代码
public class ConcreteProduct2 implements Product
{
public ConcreteProduct2()
{
//do something
}
}
客户源代码
public class Client
{
private static Creator creator1,creator2;
private static Product product1,product2;
public static void main(String[] args)
{
creator1=new ConcreteCreator1();
product1=creator1.factory();
creator2=new ConcreteCreator1();
product2=creator2.factory();
}
}