工厂方法(FactoryMethod)模式

为创建对象定义一个接口,让子类决定实例化哪个类。工厂方法让一个类的实例化延迟至子类。


public interface Factory{
Product createproduct();
}//Factory接口定义了createproduct()方法来返回Product类型的实例对象,
//ConcreateFactory实现了该方法,每次调用都会实例化一个新的ConcreateProduct返回
public class ConcreateFactory implements Factory{
     public Product createProduct(){
     return new ConcreateProduct();
     }

}
public interface Product{}
public class ConcreateProduct implements Product{}



//工厂方法模式使用
public class Client{
private Factory factory;
public Client (Factory factory){
 this.factory=factory;
}
public void doSomething(){
	Product product =factory.createproduct();
	//to do something...	
}
public static void main(String[] args)
{
	Client client=new Client(new ConcreateFactory());
	client.doSomething();
}

}
//如果具体实现类较多,我们可以定义一个参数化的工厂方法,根据不同
//的输入返回不同的实现子类,代码片段如下.
public Product createProduct(String type){
if("type1".equals(type)){
	return a type1 instance...
}else if("type2".equals(type)){
	return a type2 instance...
}else{
		...
}
}


上一篇:看苏州大搬家了!后台数据正式搬到阿里云


下一篇:Linux下删除乱码文件及文件夹