实现单例模式,可以使用静态变量和私有构造函数。
首先,在类中添加一个私有的静态变量来存储单例对象:
private static MyClass instance;
然后在构造函数中判断静态变量是否为空,如果为空则创建新的对象,并将其赋值给静态变量:
private MyClass() {
// 构造函数逻辑
}
public static MyClass getInstance() {
if (instance == null) {
instance = new MyClass();
}
return instance;
}
这样就可以在其他地方通过调用MyClass.getInstance()来获取单例对象。
在的例子中,可以将init方法中的代码修改为:
@PostConstruct
public void init() {
if (httpClient == null) {
HttpClientFactoryImpl connectionFactory =
new HttpClientFactoryImpl(Username, Secret, hostId);
httpClient = connectionFactory.newHttpClient();
}
}