public interface MessageService {
String getMessage();
}
public class EmailService implements MessageService {
@Override
public String getMessage() {
return "Hello, this is an email message.";
}
}
public class SMSService implements MessageService {
@Override
public String getMessage() {
return "Hello, this is an SMS message.";
}
}
public class NotificationService {
private final MessageService messageService;
@Inject
public NotificationService(MessageService messageService) {
this.messageService = messageService;
}
public void sendNotification() {
String message = messageService.getMessage();
System.out.println("Sending notification: " + message);
}
}