相反する要件を与えていることに気付きましたか?
- すべてのページで多くのことを行います
- 何千行にも及ばない
多くの機能がある場合、その機能を実行するために多くのコードが必要になりますか? 多くの場合、ユーザー インターフェースは簡単ではありません。
- 美しく論理的なレイアウト
- 現在の UI 状態に応じてコンポーネントを有効/無効にする
- ユーザー入力を検証する
- 舞台裏で一部のモデルとデータを交換する
これには当然、UI 要素ごとに数行、場合によっては多数のコードが必要です。(コード行は、ここでは文字どおりに解釈する必要はありません。XML などで動作するフレームワークを使用している場合は、ある種のメタコードである可能性もあります)。
抽象的に言えば、あなたができる唯一のことは、その混乱を論理的に整理することです。さまざまなタスクを明確に分離します。これは、動作全体を各 UI 要素に抽象化するか (通常、このアプローチは、各コンポーネントの特殊なサブクラスまたはコンポーネントと動作の複合体につながります)、または各懸念事項を個別のクラス (たとえば、すべてのコンポーネント、ただし有効化/無効化、検証、およびデータ バインディングは異なるクラスに分けられます)。
どちらのアプローチも実際にはコードの量を減らすわけではありませんが、1 つのクラスに入れるコードの量を制限します。
最後に、多くの場所で見つけた共通/類似のコードを除外します (既存のコードのメッシュが既にある場合の「救済」アプローチ)。