gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 19:52:50 25 4
gpt4 key购买 nike

我熟悉静态工厂方法的理念和优势,如 Joshua Bloch 的 Effective Java 中所述:

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

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

你能帮我想出一个使用静态工厂方法的实际例子吗?它清楚地说明了它的好处,但它仍然足够简单,可以在介绍性的 Java 类中向某人展示?

此人确实有 PL/SQL 编程经验,但从未抽出时间学习 OOP 模式。

最佳答案

使用 javax.swing.BorderFactory 作为所有三点的示例。

此类用于为 Swing 对象制作边框。这些边框对象可以很容易地重复使用,而这个工厂方法允许这样做。这是 the javadoc .这家工厂是所有三点的一个很好的例子:

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

关于java - 静态工厂方法的实际用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4196367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com