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