【发布时间】:2016-08-03 05:14:02
【问题描述】:
我是 Java 初学者,我用来学习 Java 的那本书似乎有让我完全困惑的神秘例子和句子。
我了解什么是接口,以及如何/在何处应用该概念在现实世界中。但是什么是工厂方法?术语“工厂方法”是模棱两可的(JavaScript 对此有不同的含义),所以我提供了本书的 sn-p,以便让我的问题更清楚。代码如下:
interface Service {
void method1();
void method2();
}
interface ServiceFactory {
Service getService();
}
Service 接口只是一个普通接口。 ServiceFactory 接口看起来像一个普通的接口,但它是一个“工厂方法”。那是什么?它解决了什么问题以及我为什么要使用它们?
【问题讨论】:
-
严格来说,
ServiceFactory也是一个“普通”界面。工厂方法需要某种实现(从 Java 8 开始,这可以是接口中的默认方法),因为它需要生成(创建)某种类型的实例(因此称为“工厂”)。您可以在接口中指定工厂方法,但仍然需要一个具体的工厂类来创建特定类型。见en.wikipedia.org/wiki/Factory_method_pattern
标签: java design-patterns interface factory-method