Junior — Middle
Pouvez-vous donner un exemple de comment mettre en œuvre le principe d'ouverture/fermeture des principes SOLID dans la pratique du développement?
sobes.tech IA
Réponse de l'IA
Le principe d'ouverture/fermeture indique que les entités logicielles doivent être ouvertes à l'extension, mais fermées à la modification.
Dans le développement Android, cela peut être réalisé, par exemple, en utilisant des abstractions et l'héritage. Au lieu de modifier une classe existante, on crée une nouvelle classe qui étend la fonctionnalité.
Exemple:
// Interface de base
interface NotificationSender {
fun send(message: String)
}
// Implémentation pour l'envoi par Email
class EmailSender : NotificationSender {
override fun send(message: String) {
// logique d'envoi d'email
}
}
// Plus tard, il faut ajouter l'envoi de SMS, sans changer EmailSender, mais en ajoutant une nouvelle classe
class SmsSender : NotificationSender {
override fun send(message: String) {
// logique d'envoi de SMS
}
}
// Utilisation
fun notifyUser(sender: NotificationSender, message: String) {
sender.send(message)
}
Ainsi, si vous souhaitez ajouter un nouveau mode d'envoi de notifications, vous étendez le système en créant de nouvelles classes, sans modifier le code existant.