工厂方法
定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。
工厂方法让类把实例化推迟到子类,所谓的决定并不是批模式允许子类本身在运行时做决定,而是指在编写创建者类时,不需知道创建的产品是哪一下,选择了使用哪个子类,就决定了实际创建的产品是什么。
如图:
举例:
抽象工厂方法
用于在多个产品族的情况下,每个产品族派生出具体的产品。
如图:
举例:
工厂方法、抽象工厂方法
工厂方法模式
* 针对的是一个产品等级结构
* 一个抽象产品类
* 可以派生出多个具体产品类
* 一个抽象工厂类,可以派生出多个具体工厂类
* 每个具体工厂类只能创建一个具体产品类的实例
抽象工厂模式
* 针对的是面向多个产品等级结构
* 多个抽象产品类
* 每个抽象产品类可以派生出多个具体产品类
* 一个抽象工厂类,可以派生出多个具体工厂类
* 每个具体工厂类可以创建多个具体产品类的实例