简介

简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。
简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。
简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。

角色以及职责

  • 抽象产品角色(Mouse)
    简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。
  • 具体产品角色(dellMouse, hpMouse)
    简单工厂模式的创建目标,所有创建的对象都是充当这个角色类的一个具体实例。
  • 工厂角色(NewMouseFactory)
    简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象。

举例

鼠标工厂,专业生产鼠标。
给参数 0,生产戴尔鼠标,给参数 1,生产惠普鼠标
简单工厂模式 (Simple Factory) - 图1

优点

  1. 一个调用者想创建一个对象,只要知道其名称就可以了。
  2. 扩展性高,如果想增加一个产品,只要扩展工厂类就可以。
  3. 屏蔽产品的具体实现,调用者只关心产品的接口。

缺点

  1. 每次增加一个产品时,都需要增加一个具体类和对象实现工厂。
  2. 使得系统中类的个数成倍增加,在一定程度上增加了系统的复杂度,同时也增加了系统具体类的依赖。