一尘不染

静态工厂方法的实际用例?

java

我熟悉静态工厂方法的概念和好处,如Joshua Bloch的EffectiveJava中所述:

  • 工厂方法具有名称,因此与构造函数不同,您可以拥有多个具有相同签名的工厂方法。
  • 工厂方法不必创建新的对象。他们可以返回先前创建的对象。这对于不可变对象或值对象很有用。
  • 与构造方法不同,工厂方法可以返回其返回类型的任何子类型的对象。

现在,我正在尝试为正在学习Java和OO原理的人员解释静态工厂方法。她从具体场景而不是抽象中学到最好的知识。如果她能看到工作中的模式并解决了一些问题,她就会明白。但是她发现很难阅读上述特征的抽象列表以了解如何应用该模式。

您能帮我举一个使用静态工厂方法的实际示例,该示例清楚地说明了它的优点,但仍然很简单,可以向Java入门类中的某人展示?

这个人的确有PL / SQL编程经验,但是从不学习OOP模式。


阅读 193

收藏
2020-12-03

共1个答案

一尘不染

使用javax.swing.BorderFactory所有三个点的例子。

此类用于为摆动对象制作边框。这些边界对象可以轻松地重复使用,并且此工厂方法允许这样做。这是javadoc。该工厂是这三个方面的一个很好的例子:

  • 有多种静态方法,它们的名称不同,例如createEmptyBorder()createEtchedBorder()
  • 这些方法将尽可能返回以前创建的对象。在整个应用程序中经常使用相同的边框。
  • Border 本身实际上是一个接口,因此通过该工厂创建的所有对象实际上都是实现此接口的类。
2020-12-03