Я не нашел лучшего названия для вопроса. Позвольте мне объяснить это лучше сейчас:
Проект, над которым я работаю, будет подключаться к удаленному серверу, шифровать сеанс и отправлять / получать пакеты данных.
Я хотел бы сделать его достаточно модульным, поэтому я подумал, что было бы неплохо использовать 3 разных класса. Это будет:
1) Класс-оболочка сокета с некоторыми виртуальными методами, такими как OnReceivedData () и OnConnected ().
2) Унаследованный класс оболочки сокета, реализующий шифрование данных перед их отправкой и расшифровывающий данные по прибытии.
3) Сам основной объект, который должен переопределять любой из вышеперечисленных классов в зависимости от его необходимости шифроваться или нет, чтобы он мог также получать уведомления о событиях OnReceivedData () и OnConnected () и действовать на его основе .
Итак, проблема в том, КАК я могу заставить мою программу знать, что она должна сначала вызвать событие для объекта шифрования, а затем вызвать это же событие для основного объекта? Поскольку я предполагаю, что если я переопределю оболочку сокета с помощью шифрования, а затем переопределю шифрование с помощью основного объекта, он, вероятно, просто вызовет метод основного объекта (он вызовет OnReceivedData () непосредственно для основного объекта, не проходя через расшифровку сначала объект, верно?).
Это называется множественным наследованием?
Кстати, если вы думаете, что это плохой дизайн проекта, я был бы признателен за любые лучшие подходы.
Спасибо, что нашли время, чтобы прочитать это.