工厂模式实质上包含两种不同的设计模式:工厂方法和抽象工厂。但他们本质上都是对创建对象进行封装,从而实现某种程度上的解耦的设计模式,所以放在一起进行介绍。 和《Head First 设计模式》不同,这里采用汉堡店的例子进行说明,因为我没吃过几次披萨,对披萨的种类知之甚少,所以就不用披萨店作为例子,但本质上两者除了名称没有根本上的区别。 汉堡店 假设我们要开一家汉堡店,并提供多种汉堡可供顾客点餐,最初的设计可能是这样的: HamburgStore是我们的汉堡店,通过orderHamburg方法可以点餐,具体的汉堡类有:…