Предположим, например, что я хотел сгруппировать некоторые классы в библиотеке jar, которые соответствуют определению моего пользовательского интерфейса. Поскольку я не могу редактировать классы внутри jar для реализации моего интерфейса, есть ли другой способ использовать эти классы, как если бы они реализовали мой интерфейс?Внедрить интерфейс, отличный от подписи класса
Пример: У меня есть классы, не подлежащие редактированию A
и B
. У меня есть статический метод в другом классе, который принимает объекты, принадлежащие моему интерфейсу I
. Как могу проехать A
и B
объектов, не допуская способа оплаты всех Object
объектов. Я хочу дать A
и B
новые функциональные возможности, которые только они могут иметь.
Создайте классы, которые будут реализовывать ваши интерфейсы, и эти классы будут служить в качестве оберток для классов сторонних библиотек. Это хорошо известно как [Шаблон проектирования фасадов] (http://en.wikipedia.org/wiki/Facade_pattern) –
@ Luiggi Я пробовал это, но, пытаясь применить сторонние объекты к моему классу-оболочке, я получил исключение ClassCastException. Это может быть функция безопасности? –
Проверьте мой ответ. Нет необходимости * прикладывать * что угодно. –