データメンバを保持していないユーティリティクラスがあり、そのメソッドを通じていくつかのサービスを提供しています。そのような場合、どんなアプローチが良いですか?すべての静的メソッドを持つクラスを作成するか、通常のメソッドを持つクラスを作成し、そのクラスのオブジェクトを作成して呼び出します。いずれのアプローチの賛否両論は何ですか?静的メソッドを持つクラスまたは通常のメソッドを持つクラス
0
A
答えて
1
優れた選択肢はnamespace
とフリー機能を使用していると思います。理由:それはインスタンス化する必要がありますが、何の状態を持っていないよう
通常の方法で
class
を使用すると、混乱しています。class
を静的メソッドのみで使用する方が良いですが、ユーザーは常にクラスの名前を指定する必要があります。namespace
とフリー機能を使用は混乱/不要インスタンス化の可能性を防止し、また、ユーザが
namespace
をエイリアスまたは同じスコープ内に複数の機能を使用する場合、繰り返しを避けるためにusing namespace
を使用することを可能にします。namespace
は複数のファイルにまたがることができます。
1
データメンバーがない場合、メンバーメソッドでクラスを使用する理由はありません。メソッドを呼び出すためにクラスのインスタンスを作成する必要があります(小さなオーバーヘッドはありません)
クラスの静的メソッドを呼び出すとオーバーヘッドは発生しません。名前空間内の関数についても同様です。
関連する問題
- 1. jsが、私は、静的メソッドを持つクラスを持つクラス
- 2. インスタンスのみを持つクラスの静的メソッドを呼び出す
- 3. C++の静的メソッドのみを持つクラスの利点
- 4. 静的メソッドのみを持つクラス - 列挙型かどうか
- 5. 静的メソッドのみを持つクラスは静的であるべきですか?
- 6. メソッドを持つWCF DataContractクラス
- 7. "hidden"メソッドを持つC#クラス
- 8. 静的メソッドを持つサービスオブジェクトの構造体、クラスまたは列挙型?
- 9. 外部クラスのオブジェクトを持つ内部クラスの静的メソッドを呼び出す
- 10. 静的メソッドと非静的メソッドを同じクラスに持つのは間違っていますか?
- 11. リポジトリを持つドメイン/モデルオブジェクトの静的メソッド
- 12. 初期値を持つクラスのインスタンスを持つ静的arraylist
- 13. 一般的なメソッドとプロパティを持つ2つのクラス
- 14. 私はContextをパラメータとして持つ場合、静的メソッドを持つクラスのSnackbar。
- 15. 静的クラスと静的メソッド
- 16. 静的ポインタを持つC++クラス
- 17. 静的メソッドを持つ抽象クラス。あれは正しいですか?
- 18. C#静的なプロパティまたはメソッドを持つインターフェイス?
- 19. 静的クラスを持つビューに動的クラスを追加する
- 20. フロー - プロパティは、静的プロパティを持つクラスを考えると、クラス
- 21. インターフェイスメソッドと全く同じシグネチャを持つ静的メソッドを持つC++クラスの利点
- 22. クラスと静的メソッド
- 23. ライブラリ内の静的メソッドまたは通常のメソッド
- 24. なぜNotImplementedメソッドを持つ通常のクラスの代わりに抽象基本クラスを使用しますか?
- 25. なぜ私はこのような静的メソッド持つ非静的メソッドのC#
- 26. Spring Controllerクラスで静的メソッドを持つクラスを使用するためのBean定義
- 27. 可変クラス名と名前空間を持つPHP静的メソッド呼び出し
- 28. Javaは、constまたは静的メソッドを持つ汎用クラスのparamを定義します。
- 29. メソッドの型を持つクラスのメソッドのリストを生成
- 30. ASP.Netの通常クラス内の静的クラス
第3の可能なオプション: 'namespace'とfree関数を使用します。 –
コメントのおかげで、3つのアプローチのいずれかを選択する理由は何ですか? – Arun