简单工厂模式: 我们在去吃鸡的时候, 不需要去后厨找不同的厨师给我们做各种各样的鸡, 只需要给服务员说我们要吃的鸡的名称,就可以得到想要的鸡。
这里: 服务员就是工厂
,我们给工厂一个信息, 工厂就给我们相应的结果。
这里其实违背了开闭原则
, 我们增加一个菜品的时候, 需要修改工厂里面的代码。
public class SingleFantasy {
public static void main(String[] args) {
Chicken colaChicken = Factory.getChicken("CurryChicken");
System.out.println(colaChicken.getClass().getName());
}
}
abstract class Chicken {
protected String name;
}
class ColaChicken extends Chicken {
}
class CurryChicken extends Chicken {
}
class Factory {
private static Chicken chicken = null;
public static Chicken getChicken(String name) {
if (name.equals("ColaChicken"))
chicken = new ColaChicken();
else if (name.equals("CurryChicken"))
chicken = new CurryChicken();
return chicken;
}
}