我是 Java 初学者,我用来学习 Java 的书似乎有一些晦涩难懂的示例和句子,让我完全困惑。
我了解什么是接口(interface)以及如何/在何处应用该概念在现实世界中。但什么是工厂方法呢? “工厂方法”一词含糊不清(JavaScript 对此有不同的含义),因此我提供了本书的片段,以便使我的问题更加清楚。这是代码:
interface Service {
void method1();
void method2();
}
interface ServiceFactory {
Service getService();
}
Service
接口(interface)只是一个普通接口(interface)。 ServiceFactory
接口(interface)看起来像一个普通接口(interface),但它是一个“工厂方法”。那是什么?它解决了什么问题以及为什么我应该使用它们?
最佳答案
工厂方法只是封装对象创建的方法。在您的示例中,您不是像通常创建 Service
那样使用 new
运算符,而是在某个对象上使用工厂方法。
ServiceFactory sf = new ServiceFactoryImpl();
// factory method
Service s = sf.getService();
为了更好地说明该方法的作用,可以改为调用 createService
。现在该方法封装了创建 Service
的详细信息,您可以提供许多风格的方法(通过重载),您可以让它根据上下文返回不同的子类,或者传递给工厂方法。
关于java - Java 接口(interface)上下文中的 "Factory Method Design Pattern"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38734887/