/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/java/code-404-2-006/main.java
63 строки
2 KB
Spirzen
Code migration pack
09 июн 2026, 01:41
09 июн 2026, 01:41
cebc284
Код
Авторство
О чём код?
// logger/src/main/java/com/example/logger/Logger.java package com.example.logger; public interface Logger { void info(String msg); } public class ConsoleLogger implements Logger { public void info(String msg) { System.out.println("[INFO] " + java.time.Instant.now() + " " + msg); } } // core/src/main/java/com/example/core/Order.java package com.example.core; public record Order(int id, String[] items) {} // core/src/main/java/com/example/core/OrderService.java package com.example.core; import com.example.logger.Logger; public class OrderService { private final Logger logger; public OrderService(Logger logger) { this.logger = logger; } public Order placeOrder(String[] items) { var order = new Order(1, items); logger.info("Order %d placed with %d items".formatted(order.id(), items.length)); return order; } } // notification/src/main/java/com/example/notification/EmailService.java package com.example.notification; import com.example.logger.Logger; public interface EmailService { void send(String to, String subject, String body); } public class SmtpEmailService implements EmailService { private final Logger logger; public SmtpEmailService(Logger logger) { this.logger = logger; } public void send(String to, String subject, String body) { logger.info("Sending email to " + to); // ... } } // app/src/main/java/com/example/app/Main.java package com.example.app; import com.example.core.*; import com.example.logger.*; import com.example.notification.*; public class Main { public static void main(String[] args) { Logger logger = new ConsoleLogger(); OrderService orderService = new OrderService(logger); EmailService emailService = new SmtpEmailService(logger); Order order = orderService.placeOrder(new String[]{"book", "pen"}); emailService.send("user@example.com", "Order confirmed", "ID: " + order.id()); } }