Java: шаблон делегирования и защищенные методы
Я использовал шаблон делегирования, чтобы обернуть объект, созданный фабрикой в сторонней библиотеке. Недавно библиотека добавила защищенный метод в базовый класс, а мой класс-оболочка не делаетне работать больше. У кого-нибудь есть хорошее решение, не прибегая к рефлексии?
Это в сторонней библиотеке и в их пакете,
public class Base {
public void foo();
protected void bar(); // Newly added
}
Это в моей собственной упаковке,
public class MyWrapper extends Base {
private Base delegate;
public MyWrapper(Base delegate) {
this.delegate = delegate;
}
public void foo() {
delegate.foo()
}
protected void bar() {
// Don't know what to do
}
}
РЕДАКТИРОВАТЬ: мой оригинальный пост не былЯсно. Эти 2 класса находятся в разных пакетах.
Чтобы ответить на вопрос, зачем мне делегирование. Это типичный пример использования делегирования / оболочки, и я могупоказать это здесь в несколько строк кода. Библиотека предоставляет базовый класс, но фактический объект из их фабрики является производным классом Base. Фактический класс меняется в зависимости от конфигурации. Так что я нене знаю, что такое делегат. Поэтому прямая наследственность нездесь не работает