Есть сторонний класс, открытый для наследования. Необходимо выделить его АПИ в интерфейс (для сужения АПИ, снижения зависимости от стороннего кода, мокирования и т.д.). Но лень писать делегирование (хотя во многих случаях это было бы правильно).
Пример на Java. Здесь сторонний класс — Object, интересующее нас апи — метод hashCode
interface IHaveHashCode {
int hashCode();
}
class IHaveHashCodeImpl implements IHaveHashCode {}
IHaveHashCode o = new IHaveHashCodeImpl();
int i = o.hashCode();
Здесь мы посредством ввода пустого класса получаем реализацию интерфейса "автоматически".