Junior — Middle
Реалдык иштеп чыгууда көзкарандычылыктардын тескери багытталышы принцибин колдонуу мисалын келтире аласызбы?
sobes.tech AI
AIден жооп
Тесирдин тескерүүсү принциби (Dependency Inversion Principle, DIP) деп high-level модулдар low-level модулдарга түздөн-түз көз каранды болбошу керек эмес экенин, экөө тең абстракциялардан көз каранды болушу керек экенин айтат.
Javaда мисал:
// Абстракция
public interface MessageService {
void sendMessage(String message);
}
// Так ишке ашыруу
public class EmailService implements MessageService {
public void sendMessage(String message) {
System.out.println("Электрондук почта жөнөтүү: " + message);
}
}
// Абстракцияга көз каранды болгон, так ишке ашыруу эмес
public class Notification {
private MessageService service;
public Notification(MessageService service) {
this.service = service;
}
public void notifyUser(String message) {
service.sendMessage(message);
}
}
// Колдонуу
public class Main {
public static void main(String[] args) {
MessageService emailService = new EmailService();
Notification notification = new Notification(emailService);
notification.notifyUser("Салам!");
}
}
Бул жерде, Notification классы MessageService интерфейсине көз каранды, конкреттүү EmailService эмес. Бул оңой эле ишке ашыруу (мисалы, SMS кызматка) өзгөртүүгө мүмкүндүк берет, Notification кодун өзгөртүүнүн зарылдыгы жок. Бул ыкма коддун тестирлөө жана кеңейтүү мүмкүнчүлүгүн жакшыртат.