gpt4 book ai didi

java - 使用 getInstance 的单例与公共(public)声明

转载 作者:行者123 更新时间:2023-12-01 19:33:11 24 4
gpt4 key购买 nike

当您可以将变量公开并访问实例时,创建 getInstance() 有何意义?

我知道抽象工厂设计模式对于工厂来说很有意义,因为我们决定运行时我们需要的实现类型。

使用 getInstance():

public class ClientFactory {
private static ClientFactory instance = null;

private ClientFactory() { }

public static synchronized ClientFactory getInstance() {
if ( instance == null ) {
instance = new ClientFactory();
}
return instance;
}
}

将变量公开而不是创建实例方法:

 public class ClientFactory {
public static final ClientFactory instance = new ClientFactory ();
private ClientFactory() { }
}

我们可以使用ClientFactory.instance.foo();轻松获取访问权限。

最佳答案

使用像 getInstance() 这样的 FactoryMethod 可以为您提供更多 future 更改的选择。

例如

  • 延迟加载
  • 用其代理之一替换实际类
  • 用其子类之一替换类(如果有一天 ClientFactory 演变为具有不同子实现的抽象类)等。

关于java - 使用 getInstance 的单例与公共(public)声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58900008/

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