Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvOpCoIC 133 of 147 menu
◀ ▶

Композиция через интерфейс в Java

Композиция становится гибче, если поле имеет тип интерфейса. Сначала опишем интерфейс для печати текста:

interface Printer { void print(String text); }

Теперь сделаем обычную реализацию этого интерфейса:

class ConsolePrinter implements Printer { @Override public void print(String text) { System.out.println(text); } }

Класс Post будет хранить поле типа Printer. Ему не важно, какой именно класс реализует этот интерфейс:

class Post { private String title; private Printer printer; Post(String title, Printer printer) { this.title = title; this.printer = printer; } }

Добавим метод, который передает вывод объекту из поля printer:

void printTitle() { printer.print(title); }

Создадим реализацию интерфейса и передадим ее в запись:

Printer printer = new ConsolePrinter(); Post post = new Post("News", printer); post.printTitle();

Сделайте интерфейс EmployeePrinter с методом печати строки.

Сделайте класс Employee, который хранит EmployeePrinter в поле и вызывает его из метода печати имени.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить