[解決済み] 静的変数が悪とされるのはなぜですか?
質問
私は、会社勤めをしている新米のJavaプログラマーです。最近、次のようなアプリケーションを開発しました。 グルーヴィー とJavaを使用しています。私が書いたコードには、ずっとかなりの数の静止画が使われていました。技術系の先輩から、静的なものを減らすように言われたんです。同じことをググってみたら、多くのプログラマが静的変数の使用にかなり反対していることがわかりました。
私は静的変数の方が使い勝手がいいと思います。なぜなら、もし私がクラス内の関数を10,000回呼び出さなければならないとしたら、私は喜んでそのメソッドを静的にして、素直な
Class.methodCall()
1万個のクラスのインスタンスでメモリを汚染する代わりにね?
さらにスタティックは、コードの他の部分への相互依存を減らすことができます。完全なステートホルダーとして機能するのです。さらに、静的機能は以下のような言語で広く実装されていることがわかります。 スモールトーク と Scala . では、なぜプログラマの間で(特にJavaの世界で)静電気に対する反発が広まっているのでしょうか?
追記:静電気に関する私の前提が間違っていたら、訂正してください。
どのように解決するのですか?
静的変数はグローバルな状態を表します。オブジェクトの新しいインスタンスを作成する場合、テストの中でその新しい状態を推論することができます。もし私が静的変数を使用しているコードを使用する場合、そのコードはどのような状態にもなり得ますし、何かがそれを変更することもあり得ます。
まだまだ続きますが、大きなコンセプトとして、スコープが狭ければ狭いほど、推論がしやすいということがあります。私たちは小さなことを考えるのは得意ですが、モジュール化されていない100万行のシステムの状態を推論するのは困難です。ちなみに、これは静的変数に限らず、あらゆるものに当てはまります。
関連
-
mavenプロジェクトのテストエラー java.lang.ClassNotFoundException: org.glassfish.jersey.client.ClientConfig の問題を解決する。
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] B "の印刷が "#"の印刷より劇的に遅いのはなぜですか?
-
[解決済み] Pythonで静的なクラス変数は可能ですか?
-
[解決済み] 静的クラスとシングルトンパターンの違い?
-
[解決済み] C言語における「static」の意味とは?
-
[解決済み】なぜJavaの+=, -=, *=, /=複合代入演算子はキャスティングを必要としないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
undefinedeclipse エラー。この行に複数のアノテーションが見つかりました: - 文字列を型解決に解決できない
-
myeclipseでコンパイルするとAntエラーが発生する javaの例外が発生しました。
-
JavaMailのメール送信が失敗するケースとその説明の分析
-
JDKの設定時にjava.dllが見つからない、java SE Runtime Environmentが見つからない問題が発生しました。
-
プロジェクトの依存関係を解決できなかった 解決
-
eclipse の実行時に java 仮想マシンが見つからなかった
-
リソースの読み込みに失敗しました。サーバーはステータス500(内部サーバーエラー)で応答しました。
-
[解決済み] 静的クラスとシングルトンパターンの違い?
-
[解決済み] Androidアプリケーションのアクティビティ間でデータを受け渡すにはどうすればよいですか?
-
[解決済み】クラスで「static」キーワードは何をするのですか?