public interface FoodFactory {
Food makeFood(String name);
}
public class ChineseFoodFactory implements FoodFactory{
@Override
public Food makeFood(String name) {
if (name.equals("A")) {
return new ChineseFoodA();
} else if (name.equals("B")) {
return new ChineseFoodB();
} else {
return null;
}
}
}
public class AmericanFoodFactory implements FoodFactory {
@Override
public Food makeFood(String name) {
if (name.equals("A")) {
return new AmericanFoodA();
} else if (name.equals("B")) {
return new AmericanFoodB();
} else {
return null;
}
}
}
public class AmericanFoodA extends Food {
AmericanFoodA(){
System.out.println("我是AmericanFoodA");
}
}
public class ChineseFoodA extends Food {
ChineseFoodA(){
System.out.println("我是ChineseFoodA");
}
}
public class TestFood {
public static void main(String[] args) {
FoodFactory factory = new ChineseFoodFactory();
Food food = factory.makeFood("A");
FoodFactory factory2 = new AmericanFoodFactory();
Food food2 = factory2.makeFood("A");
}
}
