Я унаследовал некоторый старый код Java (1.4), и это дизайнерское решение появляется регулярно. Я не могу понять, есть ли для этого какая-либо цель или причина.
public interface SoapFacade extends iConfigurable{ }
public class SoapFacadeBase implements SoapFacade{
...
}
public class SoapFacadeImpl extends SoapFacadeBase implements SoapFacade{
...
}
Как я понимаю интерфейсы (и мои эксперименты усилились), нет никакой цели, чтобы и родительский, и дочерний объекты реализовали один и тот же интерфейс. В этом случае все из SoapFacade реализовано в SoapFacadeBase, но метод в iConfigurable реализован в SoapFacadeImpl. Однако это не создает необходимость <<24 > реализовать SoapFacade.
Есть ли что-то, что я не знаю об интерфейсах, которые могли бы придать этому шаблону какую-то цель или выгоду? Существуют ли базовые издержки за пределами ясности, которые должны стимулировать реорганизацию? Или он просто должен быть реорганизован для ясности/простоты?