版权声明:本文为博主原创文章,如需转载,敬请注明转载链接 https://blog.csdn.net/guobinhui/article/details/85103909
工厂方法模式(Factory Method)
常用的工厂方法模式是静态工厂,利用static方法,作为一种类似于常见的工具类Utils等辅助效果,一般情况下工厂类不需要实例化,只需通过类名调用静态方法即可实现。
首先定义一个工厂类,里面定义三个静态方法
public class StaticFactory {
private StaticFactory(){}
public static Food getA(){ return new FoodA(); }
public static Food getB(){ return new FoodB(); }
public static Food getC(){ return new FoodC(); }
}
接着定义一个接口
public interface Food { }
三个实现子类
public class FoodA implements Food { public FoodA { } //无参构造器}
public class FoodB implements Food { public FoodB { } //无参构造器}
public class FoodC implements Food { public FoodC { } //无参构造器}
客户端代码
public class Client{
//客户端代码只需要将相应的参数传入即可得到对象
//用户不需要了解工厂类内部的逻辑。
public Food get(String name){
Food food = null ;
if ( name.equals("FoodA")) {
food = StaticFactory.getA();
}else if ( name.equals("FoodB")){
food = StaticFactory.getB();
}else {
food = StaticFactory.getC();
}
return food
}
}