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