Статический вложенный интерфейс в Java — это интерфейс, объявленный внутри класса с ключевым словом static. Его основное назначение — ограничить доступ и создать логическую группировку связанной функциональности в пределах области видимости конкретного класса.
Главное преимущество — инкапсуляция. Только содержащий класс может обращаться к вложенному интерфейсу. Это означает:
Посмотри на эту реализацию:
public class Abc {
public interface Xyz {
void callback();
}
public static void registerCallback(Xyz xyz) {
// Implementation
}
}
Клиентский код должен обращаться к интерфейсу через содержащий класс:
Abc.registerCallback(new Abc.Xyz() {
public void callback() {
// Implementation
}
});
Статические вложенные интерфейсы идеальны, когда:
Объявление интерфейса как статически вложенного обеспечивает сильную инкапсуляцию, гарантируя, что интерфейс остаётся внутренним делом своего содержащего класса и недоступен для внешнего кода, у которого нет доступа к родительскому классу. Это способствует более чистой архитектуре и снижает связанность в твоём коде.
Статический вложенный интерфейс может быть доступен коду вне содержащего класса только если сам содержащий класс доступен.
Новый — ещё не проверен сообществом
Вы