软件设计模式–第二章 创建型模式–工厂方法模式

目录

  • 第二章 创建型模式
    • 1、创建型模式概述
    • 2、工厂方法模式(Factory method)
      • (1)模式的定义与特点
      • (2)模式的结构与实现
      • (3)应用场景
      • (4)扩展

第二章 创建型模式

1、创建型模式概述

  • 主要特点
    对象的创建与使用分离”,这样可以降低系统的耦合度。

  • 创建型模式分为以下几种:
    ⑴单例(Singleton)模式 :某个类只能生成一个实例,该类提供了一个全 局访问点供外部获取该实例,其拓展是有限多例模式。
    ⑵ 原型(Prototype)模式:将一个对象作为原型,通过对其进行复制而克 隆出多个和原型类似的新实例。
    ⑶ 工厂方法(Factory Method)模式:定义一个用于创建产品的接口,由子 类决定生产什么产品。
    ⑷ 抽象工厂(Abstract Factory)模式:提供一个创建产品族的接口,其每 个子类可以生产一系列相关的产品。
    ⑸ 建造者(Builder)模式:将一个复杂对象分解成多个相对简单的部分, 然后根据不同需要分别创建它们,最后构建成该复杂对象。

2、工厂方法模式(Factory method)

(1)模式的定义与特点

  1. 定义:定义一个创建产品对象的工厂接口,将产品对象的实际创 建工作推迟到具体子工厂类当中。
  • 这满足创建型模式中所要求的“创建与使用相分离”的特点。
  1. 优点:用户知道具体工厂的名称就可得到所要的产品,无须知道产品的创建过程满足开闭原则。

  2. 缺点:每增加一个产品就要增加一个具体产品类和一个对应的具体工厂类,这增加了系统的复杂度。

(2)模式的结构与实现

1、结构

1)抽象工厂(Abstract Factory):提供了创建产品的接口,调用 者通过它访问具体工厂的工厂方法newProduct()来创建产品。
2)具体工厂(Concrete Factory):主要是实现抽象工厂中的抽象 方法,完成具体产品的创建。
3)抽象产品(Product):定义了产品的规范,描述了产品的主要 特性和功能。
4)具体产品(Concrete Product):实现了抽象产品角色所定义的 接口,由具体工厂来创建,它同具体工厂之间一一对应。

结构图:

具体产品,马类:

具体产品,牛类:

抽象工厂,畜牧场:

具体工厂,养马场:

具体工厂,养牛场:

config.xml:

ReadXML:该方法用于从XML配置文件中提取具体类类名,并返回一个实例对象

测试:

(3)应用场景

  • 客户只知道创建产品的工厂名,而不知道具体的产品名。如:
    TCL电视工厂、海信电视工厂等;
  • 创建对象的任务由多个具体子工厂中的某一个完成,而抽象工
    厂只提供创建产品的接口。
  • 客户不关心创建产品的细节,只关心产品的品牌

(4)扩展

  • 当需要生成的产品不多且不会增加,一个具体工厂类就可以完成任务时,可删除抽象工厂类。这时工厂方法模式将退化到简单工厂模式

软件设计模式--第二章 创建型模式--工厂方法模式

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览93643 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月7日
下一篇 2022年9月7日

相关推荐