Junior — Middle
Puoi fare un esempio di come implementare il principio di apertura/chiusura dei principi SOLID nella pratica dello sviluppo?
sobes.tech AI
Risposta dell'AI
Il Principio di apertura/chiusura afferma che le entità software dovrebbero essere aperte all'estensione, ma chiuse alla modifica.
Nello sviluppo Android, questo può essere implementato, ad esempio, attraverso l'uso di astrazioni e ereditarietà. Invece di modificare una classe esistente, creiamo una nuova classe che estende la funzionalità.
Esempio:
// Interfaccia di base
interface NotificationSender {
fun send(message: String)
}
// Implementazione per l'invio via Email
class EmailSender : NotificationSender {
override fun send(message: String) {
// logica di invio email
}
}
// Più tardi, bisogna aggiungere l'invio di SMS, senza modificare EmailSender, ma aggiungendo una nuova classe
class SmsSender : NotificationSender {
override fun send(message: String) {
// logica di invio SMS
}
}
// Utilizzo
fun notifyUser(sender: NotificationSender, message: String) {
sender.send(message)
}
In questo modo, se si desidera aggiungere un nuovo metodo di invio notifiche, si amplia il sistema creando nuove classi, senza modificare il codice esistente.