코드를 매우 복잡하게하지 않고 winform 응용 프로그램에서 사용자 클릭을 캡처하는 방법은 무엇입니까? 대답은 AOP입니까? 계측기를 추적하는 방법?winforms에 대한 AOP
답변
이것은 실제 요구 사항에 따라 다릅니다.
간단한/샘플/프로토 타입 winforms 앱의 경우 코드가 핸들러 메서드에서 너무 무겁지 않다면 기본 코드 WinForms Event Handlers을 제안합니다. 코드가 무거 우며 엄격한 비즈니스 규칙을 포함하고 양식과 상호 작용하지 않는 경우 해당 코드를 다른 클래스로 이동하여 이벤트 처리기에서 호출하는 것이 가장 좋습니다.
Aspect Oriented Programming이 더 걸립니다. 일반적으로 대규모 프로젝트에 가장 적합합니다. 양식 요소에 대한 이벤트 핸들러가 필요합니다 (컨트롤 기반 이벤트 처리기를 사용하는 것이 좋습니다. 전역 이벤트 처리 기능을 직접 만들지는 마십시오.)하지만 Command 개체 (GangOfFour의 Command Pattern 참조)를 호출해야합니다. 그런 다음 해당 명령 객체를 응용 프로그램의 어느 곳에서나 호출 할 수 있습니다. 계측을 원할 경우 계측은 WinForms 이벤트가 아닌 Command 개체에 있어야합니다. Castle Windsor과 같은 Inversion of Control 컨테이너를 활용하면 Interceptor pattern을 사용하여 애플리케이션을 전혀 변경하지 않고도 명령에 로깅/감사를 삽입 할 수 있습니다. Here's an example from David Hayden
winforms의 클릭 수를 캡처하는 일반적인 방법은 Control.MouseClick입니다. 더 자세한 정보가 필요하면 Control.MouseDown 및 Control.MouseUp을 볼 수도 있습니다.
당신이하려는 일에 대해 더 자세히 설명해 주시면 좀 더 구체적인 답을 찾을 수 있습니다.