工厂方法模式
角色
抽象创建者:
可以是一个抽象类 或者接口,定义了一个工厂方法,但并不实现工厂方法,也不依赖任何具体产品 ,只是依赖于抽象产品。
抽象产品 :
可以是一个抽象类 或者接口,定义了 产品 共同的接口 ,使用产品的类 只依赖这个接口 而不用关心(不依赖)具体的产品。
具体创建者 :
继承自抽象创建者 ,负责创建具体的产品,这里将是唯一一处依赖具体产品的地方。
具体产品 :
产品的具体实现,继承自抽象产品。
定义
在(抽象创建者)中定义了一个创建(抽象产品)的接口,但由(具体创建者)决定要实例化的类是哪一个(具体产品)。工厂方法让类把实例化推迟到子类。
如图: