Имя пользователя:
Пароль:
 

Название темы: Callback - Опять в раздумьях
Показать сообщение отдельно

редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


Я немного выше перепутал B и C. Латинские буквы жутко неудобны.

Раз у нас B, E, F, G итд получают одинаковое сообщение, то логично предположить, что в этом аспекте у них одинаковый интерфейс. Почему бы эту одинаковость не вынести в отдельный абстрактный класс?

Т.е. схема такая: У нас есть класс I (от слова интерфейс), с функцией onEvent(A &sender). От него наследуются B и компания. D наследуется от C, в конструкторе получает указатель на A и I. Кто этот I реализует - B, E, F или кто ещё ему всё равно. В своём onEvent он вызывает onEvent из I. Всё вроде просто.

Если бы можно было менять A я бы вообще просто убрал класс C (и D, соответственно), т.к. они только плодят сущности с моей точки зрения.

Другое дело, если события можно привязывать к разным методам. Тогда я не вижу альтернативы написанию нескольких классов вручную/шаблонно/темплейтно, типа того, который я привёл выше.

pva
Жаль параметром шаблона нельзя сделать отдельный метод, всё могло бы быть значительно красивше.

-------
http://ivank.ru


Отправлено: 16:35, 27-05-2006 | #8

Название темы: Callback - Опять в раздумьях