АОП для винформ - PullRequest
       15

АОП для винформ

2 голосов
/ 24 октября 2008

Как захватывать клики пользователей в приложении winform, не усложняя код? АОП ответ? Как отследить контрольно-измерительные приборы?

Ответы [ 2 ]

5 голосов
/ 24 октября 2008

Это зависит скорее от ваших реальных требований.

Для простого / образца / прототипа приложения winforms я бы предложил базовые обработчики событий WinForms с кодом (при условии, что он не слишком тяжелый) в методах обработчика. Если код тяжелый, содержит жесткие бизнес-правила и не взаимодействует с формой, то лучше переместить этот код в другой класс и вызвать его из обработчика событий.

Аспектно-ориентированное программирование принимает это далее. Как правило, лучше всего применять в крупных проектах. Вам по-прежнему нужны обработчики событий для элементов формы (и я рекомендую придерживаться основанных на элементах управления обработчиков событий - не пытайтесь создать собственную глобальную функцию обработки событий), но они должны совершать вызовы объектов Command (см. Шаблон команды в GangOfFour). Эти командные объекты могут быть вызваны из любого места в вашем приложении. Если вы хотите инструментарий, инструментарий должен быть на этих объектах Command, а не на событиях WinForms. Вы можете использовать Inversion of Control контейнеры, такие как Castle Windsor , чтобы вводить протоколирование / аудит в команды без необходимости вообще менять приложение, используя Interceptor pattern . Вот пример от Дэвида Хейдена

0 голосов
/ 24 октября 2008

Общий метод захвата кликов в winforms - это обработка Control.MouseClick . Вы также можете посмотреть Control.MouseDown и Control.MouseUp , если вам нужна более подробная информация.

Если вы предоставите более подробную информацию о том, что вы пытаетесь сделать, мы, вероятно, сможем найти более точный ответ.

...