Это скорее теоретический вопрос без реального примера кода, и я не уверен, что просто обдумал это.
Все это является частью реализации GUI, над которой я работаю, где GUI представляется в виде древовидной структуры, состоящей из специализаций Leafs
и Nodes
, которые затем имеют некоторое особое поведение, например текстовое содержимое, изображение или что-то еще, что обрабатывается в его реализации c * 1005.
Однако, моя проблема здесь в том, что я хотел бы иметь функциональность Hover
в некоторых графических интерфейсах, но это Hover
функциональность нужна! некоторые! функций элемента basi c GUI, показанных на диаграмме, и теперь я не могу обернуться, как соединить эти две части в окончательный класс Button
. Он должен унаследовать все функциональные возможности Leaf
плюс абстрактный материал Hover
.
Есть ли способ сделать эту работу такой, какой я ее себе представляю? Или я должен предоставить эту Hover
функциональность для всех графических интерфейсов и просто реализовать пустые onMouseEnter()
и onMouseExit()
для тех, кто его не использует?
Причина, по которой я хотел бы не давать ее всем Графический интерфейс вызван тем, что проверка, находится ли мышь над элементом, не бесплатна. И не все элементы должны быть интерактивными.
Несколько замечаний:
- Hover
также могут быть унаследованы специализацией узла
- Список функций в Hover
завершено
- Leaf
и Node
оба реализуют некоторые абстрактные функции из Element
по-разному
Если вы можете придумать лучший заголовок для этого, не стесняйтесь предложить редактировать