Junior — Middle
Podes dar um exemplo de como implementar o princípio de abertura/fechamento dos princípios SOLID na prática do desenvolvimento?
sobes.tech IA
Resposta da IA
O Princípio Aberto/Fechado afirma que as entidades de software devem estar abertas para extensão, mas fechadas para modificação.
No desenvolvimento Android, isso pode ser implementado, por exemplo, através do uso de abstrações e herança. Em vez de modificar uma classe existente, criamos uma nova classe que estende a funcionalidade.
Exemplo:
// Interface base
interface NotificationSender {
fun send(message: String)
}
// Implementação para envio por Email
class EmailSender : NotificationSender {
override fun send(message: String) {
// lógica de envio de email
}
}
// Mais tarde, é necessário adicionar envio de SMS, sem alterar EmailSender, mas adicionando uma nova classe
class SmsSender : NotificationSender {
override fun send(message: String) {
// lógica de envio de SMS
}
}
// Uso
fun notifyUser(sender: NotificationSender, message: String) {
sender.send(message)
}
Dessa forma, se precisar adicionar uma nova forma de envio de notificações, ampliamos o sistema criando novas classes, sem alterar o código existente.