0

カードレイアウトを使用する元同僚からswingアプリケーションを継承しました。

約40種類のJPanelカードがあり、すべて静的でGUIを構成しています。

これらの静的パネルはそれぞれ、それぞれ独自の約50個の静的変数を持つ異なるクラスであり、それらはすべて、JPanelのサブクラスである同じスーパークラスから継承します。

読みやすくするために、これらの50個の静的変数とメソッドをできるだけ多く親クラスに入れる予定です。

私の懸念は、これらすべての静的変数とJPanelが、必要のないときにメモリに格納されていることです。

これが画面ごとのGUIを作成する方法なのか、それとももっと効率的な方法があるのか​​知りたいのですが。

4

1 に答える 1

0

特別にエレガントに聞こえるわけではありませんが、だからといってデザインが悪いというわけではありません。

メモリ使用量に関しては、大きなデータ構造でない限り、2,000 個の変数は大量のメモリではありません。リファクタリングできる静的変数はいくつあるのだろうか。結局のところ、static int sFoo;2 つのサブクラスにはメモリ内の 2 つの変数があり、異なる目的に使用される可能性があります。それらを共通のスーパークラスに入れるということは、変数が 1 つだけになり、(潜在的に) 複数の目的が衝突する可能性があることを意味します。

また、効率は見る人の目にかかっています。詳細を知らなければ、一連の静的パネルがアプリを初期化する最も効率的な方法であるかどうかを判断するのは困難です。効率化のもう 1 つのタイプは、時間を有効に使うことです。問題は、アプリを維持するために必要に応じてパッチを適用する方が効率的か、それとも将来的にアプリを維持する時間が少なくなることを期待して、事前にリファクタリングに多くの時間を費やす方が効率的かということです。知るか?このようなことに対する私の一般的な哲学は、「壊れていない場合は修正しないでください」です。

于 2012-09-27T16:00:59.603 に答える