设计模式(一)——抽象工厂模式
抽象工厂模式
设计模式分为创建型设计模式、行为型设计模式、结构型设计模式。创建型设计模式分为5种:工厂模式,抽象工厂模式,单例模式,原型模式,建造者模式。
抽象工厂模式与工厂模式类似,他们的区别简单的可以这样理解:果农管理水果时,每种水果都是相互独立的,每一个种独立的水果类型都有一个具体的子工厂负责创建,此时可采用工厂模式;但在快餐店中,我们要管理的食品被分为多个类别(饮料类、汉堡类等),并且出售多个类别混合的套餐(例如:鸡翅+可乐,咖啡+汉堡),这时使用工厂模式就不适合了,因为工厂模式不能表明产品之间的关系,当面临“一系列相互关联的对象”的创建工作时,需求的变化可能会导致一系列产品需同时改变,此种情况我们便使用抽象工厂模式。
抽象工厂模式的结构包括 抽象工厂Abstract Factory、具体工厂Concrete Factory、抽象产品 Abstract Product 、具体产品Product四个部分。抽象工厂声明了一系列抽象产品的方法;具体工厂执行生成一系列抽象产品的方法,生成一些列具体产品;抽象产品为一系列的某一种产品实现产品接口;具体产品,定义具体工厂生成的具体产品的对象,实现产品接口。