Что такое скелетная реализация?

120
14 декабря 2020, 08:40

Скелетная реализация, это реализация абстрактного класса, который имплементирует (но не реализует) интерфейс? Все просто? Гибкость заключается в том, что мы можем имплементировать любые интерфейсы, составляя новые скелетные реализации? Добавлю из блоха: "Класс, который реализует данный интерфейс, может переадресовывать вызов метода, указанного в интерфейсе, содержащемуся внутри его экземпляру закрытого класса, расширяющего скелетную реализацию."

Все правильно?

Answer 1

Скелетная реализация, это реализация абстрактного класса, который имплементирует (но не реализует) интерфейс? Все просто?

Да все просто, только имплементирует и реализует это все-же одно понятие на 2х языках.

Скелетная реализация, я не встречал такого термина в литературе, насколько я смог понять, это такой перевод или объяснение понятия "абстрактный класс" в книге, которую Вы читаете .

Суть - помощь в дальнейшей реализации этого интерфейса(ов).

Пример из jdk:

Интерфейс мышиного слушателя:

public interface MouseMotionListener extends EventListener {
    public void mouseDragged(MouseEvent e);
    public void mouseMoved(MouseEvent e);
}

Его "скелетная" реализация, хоть и содержит пустые методы, но дает возможность их не определять в наследниках, таким образом, те, кому нужен только один метод, его и определят, а второй получат из скелетной реализации

public abstract class MouseMotionAdapter implements MouseMotionListener {
    public void mouseDragged(MouseEvent e) {}
    public void mouseMoved(MouseEvent e) {}
}

PS: то что методы тут пустые - это не требование, такая уж тут реализация...

Как-то так

READ ALSO
Как организовать Random без повторений на Java?

Как организовать Random без повторений на Java?

Есть числа с 0 по 23Как сделать так, что бы при нажатии на кнопку генерировалось случайное число, которое не встречалось еще как минимум 2 раза?

128
не отображаются кириллицы на jsp странице

не отображаются кириллицы на jsp странице

В приложении есть локализация en/ru, файл localizationproperties находится в папке webapp/WEB-INF/classes

153
Как при создании меню установить иконку из интернета?

Как при создании меню установить иконку из интернета?

изучаю Android (Java)Необходимо создать меню программно с иконками

117
Как найти элементы массива по индексу из другого массива и вывести обновлённый список во Vue

Как найти элементы массива по индексу из другого массива и вывести обновлённый список во Vue

Делаю фильтр по нажатию на кнопку должно найти у item категорию которая совпадает с категорией на кнопку, эти элементы оставить а остальные...

112