public class UserService {
public void registerUser(User user) {
}
public void deleteUser(User user) {
}
}
public interface Shape {
double calculateArea();
}
public class Circle implements Shape {
private double radius;
@Override
public double calculateArea() {
return Math.PI * radius * radius;
}
}
public class Square implements Shape {
private double side;
@Override
public double calculateArea() {
return side * side;
}
}
public class Fish {
public void swim() {
}
}
public class Trout extends Fish {
}
// Вместо единого монолитного интерфейса
public interface Worker {
void work();
void eat();
void sleep();
}
// Отдельные интерфейсы для разных ролей
public interface Workable {
void work();
}
public interface Eatable {
void eat();
}
public interface Sleepable {
void sleep();
}
public class Employee implements Workable, Eatable {
}
// высокоуровневый модуль
public interface MessageService {
void sendMessage(String message);
}
public class EmailService implements MessageService {
@Override
public void sendMessage(String message) {
}
}
public class Notification {
private final MessageService messageService;
public Notification(MessageService messageService) {
this.messageService = messageService;
}
public void sendNotification(String message) {
messageService.sendMessage(message);
}
}