Junior — Middle
Μπορείς να δώσεις ένα παράδειγμα για το πώς να υλοποιήσεις την αρχή της ανοιχτότητας/κλεισίματος από τις αρχές SOLID στην πρακτική ανάπτυξης;
sobes.tech AI
Απάντηση από AI
Η Αρχή του ανοιχτού/κλειστού (Open/Closed Principle) λέει ότι οι οντότητες λογισμικού πρέπει να είναι ανοιχτές για επέκταση, αλλά κλειστές για τροποποίηση.
Στην ανάπτυξη Android, αυτό μπορεί να υλοποιηθεί, για παράδειγμα, μέσω της χρήσης αφαιρέσεων και κληρονομικότητας. Αντί να τροποποιήσουμε μια υπάρχουσα κλάση, δημιουργούμε μια νέα κλάση που επεκτείνει τη λειτουργικότητα.
Παράδειγμα:
// Βασική διεπαφή
interface NotificationSender {
fun send(message: String)
}
// Υλοποίηση για αποστολή μέσω Email
class EmailSender : NotificationSender {
override fun send(message: String) {
// λογική αποστολής email
}
}
// Αργότερα, πρέπει να προστεθεί αποστολή SMS, χωρίς να αλλάξουμε το EmailSender, αλλά προσθέτοντας μια νέα κλάση
class SmsSender : NotificationSender {
override fun send(message: String) {
// λογική αποστολής SMS
}
}
// Χρήση
fun notifyUser(sender: NotificationSender, message: String) {
sender.send(message)
}
Έτσι, αν χρειάζεται να προσθέσουμε έναν νέο τρόπο αποστολής ειδοποιήσεων, επεκτείνουμε το σύστημα δημιουργώντας νέες κλάσεις, χωρίς να αλλάξουμε τον υπάρχοντα κώδικα.