[结构型模式] head first 设计模式之工厂模式(Factory)
1 概述
工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。工厂模式有以下几种形态:
a) 简单工厂(Simple Factory)模式
专门定义一个类来负责创建其它类的实例,被创建的实例通常都具有共同的父类。
注意:简单工厂模式并不包含在23种模式之内。
b) 工厂方法(Factory Method)模式,又称多形性工厂(Polymorphic Factory)模式
将对象的创建交由父类中定义的一个标准方法来完成,而不是其构造函数,究竟应该创建何种对象由具体的子类负责决定。通过继承来实现的。
c) 抽象工厂(Abstract Factory)模式,又称工具箱(Kit或Toolkit)模式
提供一个共同的接口来创建相互关联的多个对象。通过组合来实现的,但是抽象工厂中创建产品的方法通常是以“工厂方法”来实现的
GOF在《设计模式》一书中将工厂模式分为两类:工厂方法模式(Factory Method)与抽象工厂模式(Abstract Factory)。将简单工厂模式(Simple Factory)看为工厂方法模式的一种特例,两者归为一类。
2 说明
工厂方法用来处理对象的创建,并将这样的行为封装在子类中。这样,客户程序中关于超类的代码就和子类对象创建代码解耦了。
工厂模式定义:实例化对象,用工厂方法代替new操作。
简单工厂代码示例
抽象工厂示例