Junior — Middle
Əsl inkişafda asılılıqların tərs çevrilməsi prinsipinin istifadəsinə nümunə göstərə bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
Asılılıqların Tərs Çevrilməsi Prinsipi (Dependency Inversion Principle, DIP) deyir ki, yüksək səviyyəli modullar aşağı səviyyəli modullardan birbaşa asılı olmamalıdır, hər ikisi də abstraksiyalara asılı olmalıdır.
Java-da nümunə:
// Abstraksiya
public interface MessageService {
void sendMessage(String message);
}
// Konkret tətbiq
public class EmailService implements MessageService {
public void sendMessage(String message) {
System.out.println("Email göndərilir: " + message);
}
}
// Abstraksiyaya bağlı olan, konkret tətbiqdən asılı olmayan sinif
public class Notification {
private MessageService service;
public Notification(MessageService service) {
this.service = service;
}
public void notifyUser(String message) {
service.sendMessage(message);
}
}
// İstifadə
public class Main {
public static void main(String[] args) {
MessageService emailService = new EmailService();
Notification notification = new Notification(emailService);
notification.notifyUser("Salam!");
}
}
Burada, Notification sinfi MessageService interfeysinə bağlıdır, EmailService kimi konkret tətbiqə deyil. Bu, Notification kodunu dəyişdirmədən (məsələn, SMS xidməti üçün) tətbiqi asanlıqla dəyişməyə imkan verir. Bu yanaşma, kodun test ediləbilərliyini və genişləndirilə bilməsini yaxşılaşdırır.