gpt4 book ai didi

java - 什么是静态工厂方法?

转载 作者:行者123 更新时间:2023-12-01 18:16:17 27 4
gpt4 key购买 nike

什么是“静态工厂”方法?

最佳答案

static factory method pattern是一种封装对象创建的方法。如果没有工厂方法,您只需调用类的 constructor直接:Foo x = new Foo()。使用此模式,您可以调用工厂方法:Foo x = Foo.create()。构造函数被标记为私有(private),因此除了从类内部之外不能调用它们,并且工厂方法被标记为 static这样就可以在没有对象的情况下调用它。

这种模式有一些优点。一是工厂可以从许多子类(或接口(interface)的实现者)中进行选择并返回它。这样,调用者可以通过参数指定所需的行为,而无需知道或理解潜在的复杂的类层次结构。

正如 Matthew 和 James 指出的那样,另一个优点是控制对有限资源(例如连接)的访问。这是一种实现 pools of reusable objects 的方法- 如果 build 和销毁是昂贵的过程,而不是 build 、使用和拆除一个物体,那么一次性 build 它们并回收它们可能更有意义。工厂方法可以返回一个现有的、未使用的实例化对象(如果有);或者如果对象计数低于某一下限阈值则构造一个对象;或者如果对象计数高于上限阈值则抛出异常或返回 null。

根据维基百科上的文章,多个工厂方法还允许对相似的参数类型进行不同的解释。通常,构造函数与类具有相同的名称,这意味着您只能有一个具有给定 signature 的构造函数。 。工厂没有那么受限,这意味着您可以有两种接受相同参数类型的不同方法:

Coordinate c = Coordinate.createFromCartesian(double x, double y)

Coordinate c = Coordinate.createFromPolar(double distance, double angle)

正如 Rasmus 所说,这也可以用来提高可读性。

关于java - 什么是静态工厂方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60358768/

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