Java 设计模式(三):抽象工厂模式

参考链接:抽象工厂模式-Abstract Factory Pattern

工厂方法模式解决了简单工厂模式存在的问题,但由于工厂方法模式中的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销。此时,我们可以考虑将一些相关的产品组成一个“产品族”,由同一个工厂来统一生产,这就是我们本文将要学习的抽象工厂模式的基本思想。

1. 模式概述

定义:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。

在抽象工厂模式中,每一个具体工厂都提供了多个工厂方法用于产生多种不同类型的产品,这些产品构成了一个产品族,抽象工厂模式结构如图所示:
Java 设计模式(三):抽象工厂模式_第1张图片
在抽象工厂模式中包含如下几个角色:

  • AbstractFactory(抽象工厂):它声明一组用于创建一族产品的方法,每一个方法对应一种产品。
  • ConcreteFactory(具体工厂):它实现抽象工厂中声明的创建产品的方法,生成一组具体产品,这些产品构成了一个产品族,每一个产品都位于某个产品等级结构中。
  • AbstractProduct(抽象产品):它为每种产品声明接口,在抽象产品中声明了产品所具有的业务方法。
  • ConcreteProduct(具体产品):它定义具体工厂生产的具体产品对象,实现抽象产品接口中声明的业务方法。

2. 模式实现

在抽象工厂中声明多个工厂方法,用于创建不同类型的产品,抽象工厂可以是接口,也可以是抽象类或者具体类,其典型代码如下所示:

public abstract class AbstractFacto

你可能感兴趣的:(设计模式,设计模式,抽象工厂模式)