一、概述 抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。可以理解成是多个工厂方法的组合。二、解决问题 在工厂方法模式中,我们的具体创建者每次使用都只能创建一个同类型的对象,假如我们现在需要的是多个不同类型的对象,工厂方法就满足不了需求了。这时 ...
一、概述
抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。可以理解成是多个工厂方法的组合。
二、解决问题
在工厂方法模式中,我们的具体创建者每次使用都只能创建一个同类型的对象,假如我们现在需要的是多个不同类型的对象,工厂方法就满足不了需求了。这时我们可以把多个工厂方法组合到一个类,这就是抽象工厂模式,它就是专门用来创建多个产品,也可以说是创建产品家族的。
三、结构类图
四、成员角色
抽象工厂(AbstractFactory):客户端直接引用,由未实现的工厂方法组成,子类必须实现其工厂方法创建产品家族。
具体工厂(ConcreteFactory):实现抽象工厂接口,负责实现工厂方法,一个具体工厂可以创建一组产品。
抽象产品(AbstractProduct):产品家族的父类,由此可以衍生很多子产品。
具体产品(Product):衍生自抽象产品,由工厂方法直接创建。
五、应用实例
在工厂方法模式中,我们使用了开烧饼店例子,现在我们让我们继续开烧饼店,为了保证烧饼的质量,我们要统一生产工艺,还要对原料做统一供应,防止偷工减料的问题。我们就是使用抽象工厂方法来统一供应原材料的,一起来看看如何做到吧。
首先创建抽象工厂,也就是原材料工厂
package abstrfactorymethod.pattern;public interface IngredientFactory { public Dough createDough(); public Sauce createSauce(); public Vegetable createVegetable(); public Meat createMeat(); public Seafood createSeafood();}
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:设计模式(五):抽象工厂方法(多个工厂方法的组合)
关键词:设计模式
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。