你的位置:首页 > 软件开发 > ASP.net > 设计模式(五):抽象工厂方法(多个工厂方法的组合)

设计模式(五):抽象工厂方法(多个工厂方法的组合)

发布时间:2016-07-31 14:00:28
一、概述  抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。可以理解成是多个工厂方法的组合。二、解决问题  在工厂方法模式中,我们的具体创建者每次使用都只能创建一个同类型的对象,假如我们现在需要的是多个不同类型的对象,工厂方法就满足不了需求了。这时 ...

一、概述

  抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。可以理解成是多个工厂方法的组合。

二、解决问题

  在工厂方法模式中,我们的具体创建者每次使用都只能创建一个同类型的对象,假如我们现在需要的是多个不同类型的对象,工厂方法就满足不了需求了。这时我们可以把多个工厂方法组合到一个类,这就是抽象工厂模式,它就是专门用来创建多个产品,也可以说是创建产品家族的。

三、结构类图

设计模式(五):抽象工厂方法(多个工厂方法的组合)

四、成员角色

  抽象工厂(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 (#换成@)。