简单工厂模式
简单工厂模式(Simple Factory Pattern):定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。
简单工厂模式的要点在于:当你需要什么,只需要传入一个正确的参数,就可以获取你所需要的对象,而无须知道其创建细节。
假设我们要建一个食物工厂:
首先需要一个抽象接口Food:
public interface Food {
public void display();
}
创建Food接口的子类来制造不同的食物:
Brand:
public class Brand implements Food{
public Brand(){
System.out.println("制造面包");
}
@Override
public void display() {
System.out.println("面包制造好了");
}
}
Noodle:
public class Noodle implements Food{
public Noodle(){
System.out.println("制造面条");
}
@Override
public void display() {
System.out.println("面条制造好了");
}
}
Rase:
public class Rase implements Food{
public Rase(){
System.out.println("制造米饭");
}
@Override
public void display() {
System.out.println("米饭制造好了");
}
}
创建工厂类,当你给它一个参数时,它就会制造对应的食物:
public class FoodFactory {
public static Food getFood(String type){
Food food = null;
if (type.equalsIgnoreCase("brand")){
food = new Brand();
}else if (type.equalsIgnoreCase("noodle")){
food = new Noodle();
}else if(type.equalsIgnoreCase("rase")){
food = new Rase();
}
return food;
}
}
测试:
public static void main(String[] args) {
Food noodle = FoodFactory.getFood("noodle");
noodle.display();
}
结果:
制造面条
面条制造好了