Страницы

Поиск по вопросам

понедельник, 30 декабря 2019 г.

Зачем нужны вложенные интерфейсы?

#java


Прогуливаясь по чужим кодам наткнулся на Класс, который содержит внутри интерфейсы:

class Aborigen{

interface Arm{
}

interface Hand{
}

//..etc code
}


Где это может быть надобно в практическом применении?
Также столкнулся, когда внутри инерфейса классы.
Это чтото новое для меня. Я запутался.
    


Ответы

Ответ 1



Например, когда нужно привязать интерфейс к конкретному классу. Классический пример (из мира андроид) View.OnClickListener Суть в том, что OnClickListener - это такое абстрактное имя, которое можно прицепить много к чему, а в данном случае дается четкое понимание, что этот интерфейс OnClickListener относится именно к View Либо же этот интерфейс нужен исключительно внутри этого класса (ну мало-ли) и его не выносят наружу, что бы не плодить лишних сущностей и не запутывать читателей. По большому счету - это просто еще один уровень изоляции и организации кода. Есть еще один классический пример (правда с классами, но суть та же) - это классы строители. Можно сделать два файла/класса: MyObject и MyObjectBuilder, но более... элегантно, что-ли, будет назвать MyObjectBuilder просто Builder, поместить его внутрь MyObject и вызывать как MyObject.Builder

Комментариев нет:

Отправить комментарий