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

Практика композиции объектов в Java

Сделайте класс Department с названием и класс Employee с именем и полем Department. Метод team() у сотрудника должен возвращать название отдела через вложенный объект.

Создайте сотрудника в отделе "Sales" и выведите результат team().

Объявите интерфейс HasSize с методом size(). Реализуйте его в NameListSize, который хранит List<String> и возвращает длину списка.

Объявите SizeView, реализующий HasSize и делегирующий size() переданному объекту. Для списка "a" и "b" выведите размер через SizeView. Ожидается 2.

Объявите интерфейс Writer с методом write(String text). Сделайте BufferWriter, накопитель строк в списке.

Сделайте PrefixWriter, реализующий Writer и хранящий другой Writer. В write добавляйте префикс "> " и передавайте строку вложенному writer. Запишите "one" через PrefixWriter с BufferWriter внутри и выведите единственный элемент буфера.

Объявите интерфейс Validator с методом isValid(String text). Реализуйте NonEmptyValidator и AlwaysValidValidator.

Сделайте EmployeePublisher с конструктором EmployeePublisher(Validator validator) и методом publish(String text): при успешной проверке выводить "published", иначе "rejected". Проверьте пустую строку с NonEmptyValidator и непустую с AlwaysValidValidator.

Объявите интерфейс Calc с методами add и mul. Реализуйте BasicCalc.

Сделайте AuditCalc, реализующий Calc через поле Calc. Переопределите только add: перед сложением выводите "add", затем вызывайте вложенный калькулятор. Убедитесь, что mul(2, 3) возвращает 6 без лишнего вывода.

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