基础概念
- 工厂模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。
- 适用性:
- 当一个类不知道它所必须创建的对象的类的时候。
- 当一个类希望由它的子类来指定它所创建的对象的时候。
- 当类创建对象的职责委托给多个帮助子类中的某一个,并且希望将哪一个帮助子类是代理者这一信息局部化的时候。
- 参与者: -
Product
- 定义工厂模式所创建的对象的接口。 -ConcreteProduct
- 实现 Product 的接口 -Creator
- 声明工厂模式,该方法返回一个Product
类型的对象。Creator
也可以定义一个工厂模式的缺省实现,它返回一个缺省的 ConcreteProduct
对象。 - 可以调用工厂模式创建一个Product
对象。 -ConcreteCreator
- 重定义工厂模式以返回一个ConcreteProduct
实例。
注意事项
- 主要有三种不同的情况:
Creator
类是一个抽象类并且不提供它所声明的工厂模式的实现。Creator
类是一个具体的类而且为工厂模式提供一个缺省的实现。Creator
类是一个抽象的类,但为工厂模式提供一个缺省的实现。
- 参数化工厂模式:一个工厂模式可以创建多中类型的对象。
demo
1 | class Product1 { |