gpt4 book ai didi

java - 在自维护的单例类中使用this关键字或者总是使用instance

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:57:45 26 4
gpt4 key购买 nike

我正在实现一个维护自身的单例类,这意味着它有一个私有(private)构造函数和一个 getInstance 方法

public class GPSTracker implements LocationListener {

private static GPSTracker instance;
private LocationManager locationManager;
private field1, field2 ...;

public static GPSTracker getInstance() {

if(instance == null)
instance = new GPSTracker();
return instance;
}

...
}

问题 1:

因为这个 GPSTracker 类维护它自己的单例对象(称为实例),所以我在这个类中实现的每个方法都引用类字段/成员应该使用像这样的成员:this.field1还是总是 instance.field1

问题2:(与1类似)

如您所见,在我上面的示例中,我需要从 LocationListener 中Override 抽象方法,通常到现在注册到 GPS 是这样的:

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1, 1, this);

因为我在同一个类中实现了覆盖,我是否还需要在这里使用 instance 单例对象(而不是这个)?

如果您能详细说明原因,我将不胜感激?

最佳答案

使用this,这样如果您以后希望它不是单例,那么所有代码​​都不必更改。 getInstance() 方法应该是唯一使用静态 instance 字段的方法。

它叫做 separation of concerns .

getInstance() 方法是唯一关注类的单例方面的方法。

关于java - 在自维护的单例类中使用this关键字或者总是使用instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41709340/

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