6

LocationListenerこのように直接実装する方が良いアプローチです

public class BackgroundService extends Service implements LocationListener {}

または通常LocationListener、クラス内で宣言しますか?

LocationListener locationListener = new LocationListener() {};
4

1 に答える 1

9

2番目のコードlocationListenerでは、インターフェイスのメソッドを呼び出す前に属性を呼び出す必要があります。

最初のコードでは、インターフェースメソッドに直接アクセスできます。

したがって、すべてのメソッド呼び出しにCPU時間がかかることがわかっている場合は、それを属性として配置するのではなく、クラスに直接実装することが有益です。

この場合BackgroundService、LocationListenerのメソッドにアクセスできる参照が1つあります。

public class BackgroundService extends Service implements LocationListener {}

この場合、2つの参照があります。1つはBackgroundServiceへの参照で、もう1つはlocationListenerへの参照です。

public class BackgroundService extends Service {
    private LocationListener locationListener = new LocationListener() {};
}

しかし、繰り返しになりますが、プログラムに重要な時間制限がない場合、それは実際には重要ではありません。とりわけ、コードが読み取り可能であることが重要です。

それがあなたの質問に答えることを願っています。

于 2012-09-01T12:25:54.093 に答える