Шаблон проектирования для реализации по умолчанию с пустыми методами
Есть ли конкретный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 традиционно является одноэлементным.