head first 简单工厂与工厂模式疑惑
疑惑1:
文中说当需求改变时,简单工厂将不能满足需求,可改变的需求包括:
1)、有些加盟店采用自创的流程,比如烘烤的做法有些差异(Bake方法改变)、不要切片(Cut方法不要)、采用其他公司的盒子(Box方法改变)等。
2)、Pizza的种类有可能发生改变(或增加或减少)。
我觉得这些改变都是在Pizza类内部发生的,如
pizza.Prepare();
pizza.Bake();
pizza.Cut();
pizza.Box();
可以在具体的pizza类(子类)中修改来实现,和采用哪种工厂没有什么关系吧?
疑惑2:
采用简单工厂时要创建具体的工厂:如 NYPizzaFactory nyFactory = new NYPizzaFactory();
采用工厂方法时也还是要创建具体的Pizza店,如:PizzaStore nyStore = new NYPizzaStore();
如果要增加加盟店,简单工厂需要增加一个具体的工厂,而工厂方法也需要增加一个具体的pizza店,客户端也还是要做相应的修改,看上去工厂方法比简单工厂好不了多少呀?