Я унаследовал некоторый старый код 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
.
Есть ли что-то, что я не знаю об интерфейсах, которые могли бы придать этому шаблону какую-то цель или выгоду? Существуют ли базовые издержки за пределами ясности, которые должны стимулировать реорганизацию? Или он просто должен быть реорганизован для ясности/простоты?