コードを非常に複雑にすることなく、winform アプリケーションでユーザーのクリックをキャプチャする方法は? AOPが答えですか?インストルメンテーションを追跡する方法は?
2 に答える
これは、実際の要件によって異なります。
シンプル/サンプル/プロトタイプの winforms アプリの場合、基本的なWinForms Event Handlersを、ハンドラー メソッドにコード (重すぎない場合) と共に使用することをお勧めします。コードが重く、難しいビジネス ルールが含まれていて、フォームと対話しない場合は、そのコードを別のクラスに移動して、イベント ハンドラーから呼び出すのが最善です。
アスペクト指向プログラミングはこれをさらに進めます。一般に、大規模なプロジェクトに適用するのが最適です。フォーム要素のイベント ハンドラーは引き続き必要ですが (コントロール ベースのイベント ハンドラーに固執することをお勧めします。独自のグローバル イベント処理機能を作成しようとしないでください)、コマンド オブジェクトを呼び出す必要があります ( GangOfFour のコマンド パターンを参照)。 . これらのコマンド オブジェクトは、アプリケーションのどこからでも呼び出すことができます。インストルメンテーションが必要な場合、インストルメンテーションは WinForms イベントではなく、それらの Command オブジェクトにある必要があります。Castle WindsorのようなInversion of Controlコンテナーを利用して、コマンドにロギング/監査を挿入できます。インターセプターのパターン。 これはデビッド・ヘイデンの例です
winforms でクリックをキャプチャする一般的な方法は、Control.MouseClickを処理することです。より詳細な情報が必要な場合は、 Control.MouseDownとControl.MouseUpを参照することもできます。
あなたが何をしようとしているのかについてより詳細を提供していただければ、より的を絞った回答が得られる可能性があります。