Padrão de design para implementação padrão com métodos vazios

Existe um específicopadrão de design que descreve o cenário em que é fornecida uma implementação padrão não abstrata que implementa todos ou alguns dos métodos na interface com implementações vazias, NO-OP. Isso sendo feito com a intenção de aliviar as subclasses com o ônus de implementar métodos que eles mesmos não precisam / usam:

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()
    }
}

Eu vi esse padrão usado várias vezes, incluindoDefaultHandler do Java na estrutura SAXeMouseAdapter. Em alguns casos, essas classes são nomeadas como Adaptadores, mas fiquei com a impressão de que o padrão do adaptador se traduz entre duas interfaces diferentes.

Dado que nesses casos há apenas uma interface declarada que está sendo traduzida para um subconjunto indefinido dessa interface - não estou claro em como isso está no espírito do padrão do adaptador.

Além disso, não vejo bem como isso se adere aoPadrão NullObject ou, dado que alguns métodos podem ter uma implementação, e o NullObject é tradicionalmente um singleton.

questionAnswers(9)

yourAnswerToTheQuestion