Patrón de diseño para la implementación por defecto con métodos vacíos.

¿Hay una específicapatrón de diseño que describe el escenario en el que se proporciona una implementación predeterminada no abstracta que implementa todos o algunos de los métodos en la interfaz con implementaciones NO-OP vacías. Esto se hace con la intención de aliviar las subclases con la carga de implementar métodos que ellos mismos pueden no necesitar / usar:

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

He visto este patrón usado varias veces incluyendoDefaultHandler de Java en el framework SAXyMouseAdapter. En algunos casos, estas clases se denominan Adaptadores, pero tuve la impresión de que el patrón del adaptador se traduce entre dos interfaces diferentes.

Dado que en estos casos solo hay una interfaz declarada que se está traduciendo a un subconjunto indefinido de esa interfaz, no tengo claro cómo está esto en el espíritu del patrón del adaptador.

Además, no veo cómo esto se adhiere a laPatrón nullObject tampoco, dado que algunos métodos podrían tener una implementación, y NullObject es tradicionalmente un singleton.

Respuestas a la pregunta(9)

Su respuesta a la pregunta