博客
关于我
【读书笔记】《大话设计模式》抽象工厂模式
阅读量:354 次
发布时间:2019-03-04

本文共 1081 字,大约阅读时间需要 3 分钟。

抽象工厂模式

1. 什么是抽抽工厂模式?

抽象工厂模式是一种用于创建一组相关或相互依赖对象的设计模式。它允许客户端无需直接指定具体类别即可获得同一产品族中不同等级的产品。这种模式特别适用于需要创建多种相互关联产品的场景。


2. 抽抽工厂模式的特点

2.1 与工厂方法模式的区别

抽象工厂模式是工厂方法模式的升级版本。工厂方法模式主要用于创建单一类型的产品,而抽象工厂模式可以同时创建多个不同等级的产品。

2.2 使用条件
  • 系统中有多个产品种类,每个具体工厂创建同一种类但属于不同等级结构的产品。
  • 系统一次只可能消费某一类型的产品,例如同一品牌的产品通常只能一起使用。
2.3 优点
  • 提供了工厂方法模式的所有优点,同时还能:
    • 在类内统一管理多个等级的产品。
    • 保证客户端始终使用同一产品族。
    • 支持产品族扩展,减少代码修改。
2.4 缺点
  • 当需要新增产品时,所有工厂类都需要进行修改,增加了抽象性和理解难度。

3. 主要角色

  • 抽象工厂(Abstract Factory):提供创建产品的接口,包含多个创建方法。
  • 具体工厂(Concrete Factory):实现抽象工厂的方法,创建具体的产品。
  • 抽象产品(Product):定义产品的规范,描述产品特性。
  • 具体产品(ConcreteProduct):实现抽象产品的接口,由具体工厂创建。

4. UML图示

抽象工厂模式的主要结构包括以下角色:

  • 创建一系列相关或相互依赖的产品。
  • 通过工厂接口统一管理产品的创建过程。
  • 支持多个等级的产品实现。

5. 具体实现

// 抽象工厂接口interface AbstractFactory {    Product1 newProduct1();    Product2 newProduct2();}// 具体工厂实现class ConcreteFactory1 implements AbstractFactory {    public Product1 newProduct1() {        return new ConcreteProduct11();    }    public Product2 newProduct2() {        return new ConcreteProduct21();    }}

6. 应用场景

  • 跨平台构件创建:如Java AWT中的不同操作系统视窗构件。
  • 产品族创建:例如电器工厂中的多种家电。
  • 数据库访问解耦:如用户和部门表的不同数据库访问。

通过以上内容,可以清晰地理解抽抽工厂模式的定义、特点及其实际应用场景。

转载地址:http://mmoe.baihongyu.com/

你可能感兴趣的文章
Python内置函数
查看>>
Python2 安装MySQLdb库
查看>>
Python2 已终结,入手Python 3,你需要这30个技巧
查看>>
python写下拉列表在excel,无法使用python获取Excel下拉列表(组合框)值
查看>>
python2.7安装
查看>>
Python2.7安装ncmbot时提示:Microsoft Visual C++9.0 is required
查看>>
PYTHON2.Git.1
查看>>
python20181211
查看>>
Python内存管理机制
查看>>
Python2中range 和xrange的区别??
查看>>
python2和3的区别
查看>>
python2和python3的pip版本升级
查看>>
python2和python3的区别
查看>>
python2备份交换机配置脚本
查看>>
Python3 - 在字符串格式化程序参数中使用变量
查看>>
Python3 A*寻路算法实现
查看>>
python3 grpc安装
查看>>
python3 mysql 封装多表_python3 mysql-多表查询
查看>>
python3 mysql8_Python MySQL8.0 错误:authentication plugin 'calling_sha2_password' is not supported....
查看>>
Python关键代码总览!从Zero到Hero必看的考点
查看>>