Как определить обработчики событий в интерфейсе в VB .Net? - PullRequest
1 голос
/ 13 ноября 2010

Я создаю интерфейс, в котором определено несколько событий. Когда я реализую интерфейс в классе, события будут отображаться. Я хочу, чтобы класс, который реализует мой интерфейс, также должен был создавать обработчики событий. Мне все равно, где класс вызывает событие, но я хочу, чтобы они определяли, что происходит, когда событие возникает. Возможно ли это, и если да, то как мне это сделать?

1 Ответ

0 голосов
/ 13 ноября 2010

Поскольку интерфейс определяет контракты, а не реализацию, на самом деле нет способа "заставить" реализации вести себя определенным образом.

При этом я немного растерялся, когда вы упоминаете обработчик события в том же классе, что и событие. Если я не путаю некоторую терминологию, обработчики - это методы, которые принадлежат подписчику события, а не издателю. Под этим вы подразумеваете что-то вроде «On<Event>» метода? Если вам нужно представить их чему-то за пределами класса, то они также могут быть добавлены к интерфейсу, но реализовать класс должен знать, как связать их вместе, и это выглядит как своеобразный дизайн.

Если вы пытаетесь заставить что-то вроде такого поведения, будет ли что-то вроде {абстрактного} базового класса соответствовать вашим потребностям лучше, чем интерфейс?

(ETA: Вы также можете рассмотреть шаблон Observer?)

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