問題タブ [static-methods]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 静的メソッドまたはシングルトンのパフォーマンス (Android)?
POJO の数が少なく、それらを操作するヘルパー メソッドが多数あるアプリでは、ヘルパー クラスをシングルトンにするか、メソッドを静的にするかのどちらがパフォーマンス的に優れているでしょうか?
java - 静的変数とメソッド
次のように設定されたクラスに出くわしました:
静的メソッドに関する私の理解では、それらが定数であり、変更されない限り、クラス変数を使用しないでください。代わりに、パラメーターを使用する必要があります。私の質問は、MyClass.doSomething() を実行して複数回呼び出されたときに、これが壊れないのはなぜですか。うまくいかないように思えますが、うまくいきます。if ステートメントを一度だけ渡します。
では、なぜこれが壊れないのか、誰かが私に説明できますか?
java - プライベート静的メソッドの使用
プライベート静的メソッドの使用についてどう思いますか?
個人的には、インスタンスフィールドへのアクセスを必要としない限り、非静的メソッドよりも静的プライベートメソッドを使用することを好みます。
しかし、この慣行はOOPの原則に違反していると聞きました。
編集:私は、パフォーマンスではなく、ビューのスタイルの観点から疑問に思っています。
c# - ジェネリック クラスの静的メソッド?
さて、これはケースです:
いくつかの静的な値で初期化する必要がある一般的な基本クラスを取得しました。これらの値は、汎用ベースクラスがロードされる型の種類とは関係ありません。
私はこのようなことができるようにしたい:
また、次のようなクラスを持っています:
これを達成する方法はありますか?非ジェネリックな基底クラスを作成してそこに静的メソッドを配置することもできますが、その「ハック」は好きではありません :)
python - Pythonの静的メソッド?
次のように、クラスを初期化せずに呼び出すことができる Python の静的メソッドを使用することは可能ですか。
language-agnostic - 多くの静的メソッドを使用することは悪いことですか?
クラスが内部状態を追跡する必要がない場合、クラス内のすべてのメソッドを静的として宣言する傾向があります。たとえば、A を B に変換する必要があり、変化する可能性のある内部状態 C に依存しない場合は、静的変換を作成します。調整できるようにしたい内部状態 C がある場合は、コンストラクターを追加して C を設定し、静的変換は使用しません。
静的メソッドを過度に使用しないようにというさまざまな推奨事項 (StackOverflow を含む) を読みましたが、上記の経験則で何が問題なのかまだ理解できていません。
それは合理的なアプローチですか?
c# - ReSharper は、メソッドが静的である可能性がある場合に不平を言いますが、そうではありません
メソッドが静的になる可能性があるのにそうではない場合、ReSharper が不平を言うのはなぜですか?
静的メソッドのインスタンスが 1 つだけ (型で) 作成され、パフォーマンスが節約されるためですか?
c# - C# でより静的なメソッドを使用して、関数型プログラミング (F#) と同じ利点を得ることができますか?
私はまだ F# を理解していないことを認めます。しかし、30,000 フィートの説明では、変更可能な状態を持たないテストが容易なコードについて話し続けています。それは静的メソッドと同じですか?
すべての静的メソッドを持つクラスでコードの一部を記述することで、F# の利点を得ることができますか?
私は短い答えを探しているだけです。このトピックに関する本全体が存在することは知っています。
linq - Linq2Sql を使用した静的メソッドとリポジトリ パターン
次のような部分的な Linq クエリで静的メソッドを作成するというアイデアを思いつきました。
したがって、たとえば、次のようにして簡単にユーザーを見つけることができます。
これは認識された設計パターンですか? リポジトリ モデルと比較して、これを行うことの利点/欠点は何ですか?
java - 次のコードのレビューを手伝ってください。スレッドセーフですか?
コンストラクター Foo() は、複数のスレッドから呼び出される可能性があります。私の懸念は、プライベート静的フィールド「callback」と静的メソッド「getCallback()」にあります。
ご覧のとおり、「getCallback()」が呼び出されるたびに、静的フィールド「callback」に新しい値が割り当てられます。
私の推測では、キーワードstaticは常にインスタンスではなくクラスにアタッチされているため、スレッドセーフではないということです。つまり、Foo の静的フィールド 'callback' は、別の Foo() を構築している他のスレッドによって上書きされる可能性があります。 . これは正しいです?
間違っている場合は修正してください。ありがとう!
編集:私の意図は、「コールバック」をクラスのどこかに保持することです。そのため、後で再利用できます。しかし、これは簡単ではありません。なぜなら、Foo は、「コールバック」の受け渡しを義務付けるコンストラクタを持つクラスから拡張されているからです。