Использование абстрактного класса в качестве прослушивателей событий?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Использование абстрактного класса в качестве прослушивателей событий?

Сообщение Anonymous »

Я делаю игру и использую множество событий, чтобы заставить один класс взаимодействовать с другими, но утомительно обрабатывать подписку и отмену подписки на методы OnEnable и OnDisable каждый раз, когда новый класс будет слушать определенное событие. Поэтому я подумал о создании абстрактных классов для конкретных событий, и тогда класс, который хочет прослушивать событие, должен будет только наследовать от абстрактного класса, чтобы сэкономить время на повторной настройке метода OnEnable и OnDisable.
Абстрактный класс будет таким:
Предположим, у нас есть событие OnGameStart. Я бы создал абстрактный класс только для того, чтобы прослушивать это событие.

Код: Выделить всё

public abstact class OnGameStartListener : Monobehaviour
{
private void OnEnable() => Controller.OnGameStart += OnGameStart;

private void OnDisable() => Controller.OnGameStart -= OnGameStart;

public abstract void OnGameStart();

}
Тогда класс, который хочет прослушивать это событие, просто унаследует от абстрактного класса и переопределит абстрактный метод.
Мой вопрос: Есть лучший способ сделать это? Или это слишком дорого? Потому что, если класс наследуется от более чем одного абстрактного класса для прослушивания событий, у нас будет больше вызываемых методов OnEnable и OnDisable.
Спасибо за время, потраченное на чтение и ответы;)
Я еще не пробовал, потому что не уверен, стоит ли оно того. Не знаю, как бы я анализировал эффективность.

Подробнее здесь: https://stackoverflow.com/questions/781 ... -listeners
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»