Я пересматриваю, как обрабатываются события (связанные с данными) для существующего кода (на C++). К событиям, которые необходимо обработать, относятся связанные события DataTable
, а также связанные события XmlNode
.наследование обработки событий (C++)
Я хочу создать общий суперкласс с виртуальными функциями (называя его EventManager
), чтобы обеспечить согласованность между приложениями.
я планирую иметь следующие виртуальные функции в EventManager
:
DataChanged(EventArgs arg)
DataChanging(EventArgs arg)
DataInserted(EventArgs arg)
DataInserting(EventArgs arg)
DataRemoved(EventArgs arg)
DataRemoving(EventArgs arg)
Я использовал EventArgs
в качестве параметра, так как другие (XmlNodeChangeEventArgs, DataRowChangeEventArgs, DataColumnChangeEventArgs
) являются производными от него. Но, используя его в виртуальных функциях, я потеряю информацию, уникальную для производных аргументов событий.
Мой вопрос: как я должен проектировать/обрабатывать этот суперкласс и виртуальные функции, чтобы иметь общий класс, который управляет событиями, но все же может правильно сопоставить (со всей необходимой информацией) производные классы?
Я сделал все возможное, чтобы объяснить свою ситуацию, но, пожалуйста, не стесняйтесь задавать вопросы, чтобы уточнить вопрос. Я действительно ищу хорошо продуманные ответы, поэтому я открыт для улучшения моего вопроса!
Заранее благодарим за ваше время и терпение! :)
Используйте ссылку или константу, если требуется, вместо копирования. – DumbCoder