Должен ли я наследовать или подписаться на события? - PullRequest
2 голосов
/ 22 декабря 2009

Если я создаю Abstract BaseForm для своего приложения Windows, я могу использовать его для выполнения общих задач при загрузке форм приложения. Я также могу override метод OnLoad, или Я подписан на событие Load (BaseForm_Load).

Какой подход лучше с точки зрения дизайна и производительности?

Ответы [ 2 ]

5 голосов
/ 22 декабря 2009

В общем, если вы реализуете базовый класс (то есть форму подкласса), лучше переопределить методы базового класса.

Это лучше по нескольким причинам - эти методы обычно выполняются первыми и всегда имеют гарантированный порядок (если вы используете событие, другие методы могут быть запущены через других подписчиков, которые могут помешать вашему методу). Кроме того, (немного) меньше накладных расходов на это.

Вероятно, лучшая причина, однако, в том, что это общепринятая практика, которая делает ваш код более понятным, особенно другими разработчиками.

1 голос
/ 22 декабря 2009

Если мне не нужно изменять поведение OnLoad (), я бы предпочел использовать подписку на событие Load. Это медленнее, но я считаю, что это концептуально более правильно.

Также см. Аналогичный вопрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...