这是工厂方法吗?

时间:2012-08-30 22:29:24

标签: design-patterns factory-pattern

工厂模式由实现特定接口的类组成。它总是必须是一个界面吗?当我有从其他类继承而不是接口的子类时,它仍然是一个工厂方法吗?

2 个答案:

答案 0 :(得分:5)

Factory method pattern必然与接口有关(就语言的interface关键字或构造而言)。您可以拥有创建类实例的工厂方法,并且可以像使用接口一样轻松地构造子类而不是基类。

例如,请参阅this Wikipedia example。这里创建了Room,主类型的子类创建了Room个实例的不同具体类型。这仍然使用Factory方法模式,即使没有涉及“接口”。

  

我的问题是,如果我用父类“替换”接口,它仍然是工厂方法吗?

是的 - 它仍然是一种工厂方法。

答案 1 :(得分:1)

这并不意味着。 交互,控制(创建)而非Java interface

的上下文中的接口