1. ホーム
  2. java

[解決済み] 静的変数が悪とされるのはなぜですか?

2022-03-14 03:44:06

質問

私は、会社勤めをしている新米のJavaプログラマーです。最近、次のようなアプリケーションを開発しました。 グルーヴィー とJavaを使用しています。私が書いたコードには、ずっとかなりの数の静止画が使われていました。技術系の先輩から、静的なものを減らすように言われたんです。同じことをググってみたら、多くのプログラマが静的変数の使用にかなり反対していることがわかりました。

私は静的変数の方が使い勝手がいいと思います。なぜなら、もし私がクラス内の関数を10,000回呼び出さなければならないとしたら、私は喜んでそのメソッドを静的にして、素直な Class.methodCall() 1万個のクラスのインスタンスでメモリを汚染する代わりにね?

さらにスタティックは、コードの他の部分への相互依存を減らすことができます。完全なステートホルダーとして機能するのです。さらに、静的機能は以下のような言語で広く実装されていることがわかります。 スモールトーク Scala . では、なぜプログラマの間で(特にJavaの世界で)静電気に対する反発が広まっているのでしょうか?

追記:静電気に関する私の前提が間違っていたら、訂正してください。

どのように解決するのですか?

静的変数はグローバルな状態を表します。オブジェクトの新しいインスタンスを作成する場合、テストの中でその新しい状態を推論することができます。もし私が静的変数を使用しているコードを使用する場合、そのコードはどのような状態にもなり得ますし、何かがそれを変更することもあり得ます。

まだまだ続きますが、大きなコンセプトとして、スコープが狭ければ狭いほど、推論がしやすいということがあります。私たちは小さなことを考えるのは得意ですが、モジュール化されていない100万行のシステムの状態を推論するのは困難です。ちなみに、これは静的変数に限らず、あらゆるものに当てはまります。