電気計算を行うプログラムの Swing 'face' を作成しました。見栄えは良いのですが、基礎となる計算をどのように実装するかについて、当惑するような一連のオプションに直面しているようです。コードが少し長くなってきたので、一般的な言葉で説明しようと思います。
私が取り組んでいるパネルは、電圧降下を計算します。
- ユーザーは、計算式のタイプを選択する 2 つのラジオ ボタンのグループから選択できます。
- ユーザーは、(7) 異なる変数の値を選択します。そのうちの (3) は、式のいずれかのタイプにのみ存在します。ユーザーは、編集可能および編集不可のコンボ ボックスを選択します。
- 追加の (4) 変数があり、ユーザーは、これらを解決する変数をラジオ ボタンで選択します。これらの横には、変数の形式 (フィート、メートルなど) を変更する追加のラジオ ボタンもあります。
- 結果はテキスト フィールドに表示され、ユーザーが値を変更するたびに更新されます。
これは多くの処理能力を必要としないと思うので、これはすべてイベント ディスパッチ スレッドで行われます。私はまだスレッドについてあまり知らないので、これは良いことです。
Java とプログラミングに関する私の限られた知識では、これを実装する方法をいくつか考えることができますが、おそらくまだ知らないいくつかの方法があります。私が知っているものでさえ、私にはまだ少し「ぼんやり」しているように見えます。
A. 基本的にパネルに法的な変更が加えられたときに起動するイベント リスナーを使用し、すべての変数をほぼ文字列リテラルとしてモノリシック ロジック クラス コンストラクターに渡します。結果。何をすべきかを理解するのに役立つさまざまなコンストラクター シグネチャを持つことができると思います。ユーザーがパネルを変更するたびに、結果を把握する新しいオブジェクトが作成されます。これは、醜くて扱いにくいようです。
B. 「親ファクトリー」 - (A.) とほとんど同じことを行いますが、変数を引数として抽象クラスのメソッドに渡します。メソッドは何をすべきかを判断し、そのサブクラスの 1 つのインスタンスを作成します。これにより、少なくともアプリケーション ロジックの作業が少し楽になると思います。
C. オブザーバーとオブザーバブル? これがどのように機能するかについては、まだよくわかりません。
D.バインディング?同じこと - 私はまだこれについてあまり知りません。
また、このタイプの計算を別のモジュールにまとめる必要があります。だから私はロジックを再利用したい。
では、どのうさぎの穴から飛び降りればよいのでしょうか? 私は自分自身を隅にコーディングしたくありません。