2

アプリケーションには、状態 (フィールド、プロパティ) を持たず、メソッドを持つサービス クラスが多数あります。このクラスを静的にするか、このクラスの単一のオブジェクトを作成して、アプリケーションのライフサイクル全体で単一のオブジェクトを使用する必要がありますか?

4

4 に答える 4

7

インターフェイスを実装するか、他のクラスから派生させる必要がある場合にのみ、このクラスをシングルトンにする必要があります。その必要がない場合は、静的クラスを使用してください。

于 2013-10-28T19:27:14.930 に答える
3

このクラスを静的にするか、このクラスの単一のオブジェクトを作成して、アプリケーションのライフサイクル全体で単一のオブジェクトを使用する必要がありますか?

それらをクラスとして宣言しstatic、すべてのメソッドをstatic. これにより、コードの後半でインスタンス メンバーを持たないようにすることができます。

ご覧になるかもしれません: all-static-methods と singleton パターンの適用の違いは何ですか?

于 2013-10-28T19:26:42.893 に答える
2

シングルトンはインターフェイスを実装できますが、静的クラスは実装できません。したがって、コードがインターフェース(例 - 依存性注入)の恩恵を受ける場合は、シングルトンを使用してください。

于 2013-10-28T19:29:21.677 に答える
1

ほとんどの場合、クラスとそのメンバーを静的にすることができます。

ただし、サービス クラスの単体テストを計画している場合は、インターフェイスが便利なインスタンスが必要になります。静的クラスにはインターフェイスを実装できないため、シングルトン パターンを使用してインターフェイスを実装する必要があります。

于 2013-10-28T19:29:46.023 に答える