Java: объединение двух классов в общий интерфейс ⇐ JAVA
-
Гость
Java: объединение двух классов в общий интерфейс
Как это сделать в Java?
У меня есть приложение, написанное на Java (Java 8) с использованием SWT.
Он использует кнопки, и мне бы хотелось, чтобы для каждой кнопки были специальные дополнения, централизованные в одном классе, чтобы мне не приходилось искать и выдавать ошибку при каждом появлении кнопки.
Естественным способом Java было бы использовать подкласс Button, я называю его MyButton, и помещать туда свои особые пожелания.
Но SWT говорит, что Button нельзя разделить на подклассы.
Ну, тогда второй вариант — MyButton имеет Button в качестве делегата.
Но многие из моих методов вообще используют элементы управления SWT, и мне очень, очень не хочется дублировать весь этот код один раз для элементов управления SWT и один раз для MyButton, а затем для MyText и MyLabel.
р>
Практически все классы имеют общий интерфейс, но он не является явным, и я могу навязать интерфейс только тем классам, которые находятся под моим контролем.
Есть ли способ обойти эти ограничения?
Как это сделать в Java?
У меня есть приложение, написанное на Java (Java 8) с использованием SWT.
Он использует кнопки, и мне бы хотелось, чтобы для каждой кнопки были специальные дополнения, централизованные в одном классе, чтобы мне не приходилось искать и выдавать ошибку при каждом появлении кнопки.
Естественным способом Java было бы использовать подкласс Button, я называю его MyButton, и помещать туда свои особые пожелания.
Но SWT говорит, что Button нельзя разделить на подклассы.
Ну, тогда второй вариант — MyButton имеет Button в качестве делегата.
Но многие из моих методов вообще используют элементы управления SWT, и мне очень, очень не хочется дублировать весь этот код один раз для элементов управления SWT и один раз для MyButton, а затем для MyText и MyLabel.
р>
Практически все классы имеют общий интерфейс, но он не является явным, и я могу навязать интерфейс только тем классам, которые находятся под моим контролем.
Есть ли способ обойти эти ограничения?
Мобильная версия