Шаблон проектирования для реализации по умолчанию с пустыми методами

Есть ли конкретныйdesign pattern это описывает сценарий, в котором предоставляется неабстрактная реализация по умолчанию, которая реализует все или некоторые методы интерфейса с пустыми реализациями NO-OP. Это делается с целью облегчить подклассы бременем реализации методов, которые им самим могут не понадобиться / не использовать:

public interface MyInterface {
    public void doThis();
    public void doThat();
    public void done();
}

public class MyClass implements MyInterface {
    public void doThis() {
        // NO-OP
    }
    public void doThat() {
        // NO-OP
    }
    public void done() {
        // Some standard implementation
    }
}

public class MuSubClass extends MyClass {
    public void doThat() {
        // Subclass only cares about doThat()
    }
}

Я видел, как эта модель использовалась несколько раз, включаяJava DefaultHandler в структуре SAX, а такжеMouseAdapter, В некоторых случаях такие классы называются Адаптерами, но у меня сложилось впечатление, что шаблон адаптера транслируется между двумя различными интерфейсами.

Учитывая, что в этих случаях существует только один объявленный интерфейс, который переводится в неопределенное подмножество этого интерфейса - мне не ясно, как это происходит в духе шаблона адаптера.

Кроме того, я не совсем понимаю, как этоШаблон NullObject либо, учитывая, что некоторые методы могут иметь реализацию, а NullObject традиционно является одноэлементным.

Ответы на вопрос(9)

Ваш ответ на вопрос