• Abstract Factory 抽象工厂


    意图

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

    适用性

    一个系统要独立于它的产品的创建、组合和表示时

    结构

    参与者

    AbstractFactory:声明一个创建抽象产品对象的操作接口

    ConcreteFactory:实现创建具体产品对象的操作

    AbstractProduct:一类产品对象声明一个接口

    协作

    通常在运行时刻创建一个ConcreteFactory类的实例。这一具体的工厂创建具有特定实现的产品对象。为创建不同的产品对象,客户应使用不同的具体工厂。

    AbstractFactory将产品对象的创建延迟到它的ConcreteFactory子类

    效果

    优点:

    它分离了具体的类:它将客户与类的实现分离。客户通过它们的抽象接口操纵实例

    它使得易于交换产品系列:它只需改变具体的工厂即可使用不同的产品配置,这是因为一个抽象工厂创建了一个完整的产品系列,所以整个产品系列会立刻改变

    它有利于产品的一致性:一个应用一次只能使用同一个系列中的对象

    缺点:

    难以支持新种类的产品:这是因为AbstractFactory接口确定了可以被创建的产品集合。 支持新种类的产品就需要扩展该工厂接口,这将涉及AbstractFactory类及其所有子类的改变

    实现

    见 工厂模式总结(简单工厂,工厂方法,抽象工厂)

  • 相关阅读:
    告别零码软件
    win+mingw+libxml2试用笔记
    beacon with java 1.7 on fedora
    mininet指令详解
    java Socket完美实例
    gnome3 下 qt 应用极其丑陋的解决方案
    org.apache.log4j Class Level
    Mac如何修改文本文件编码
    unity性能优化相关
    平面图判定
  • 原文地址:https://www.cnblogs.com/raichen/p/5670430.html
Copyright © 2020-2023  润新知