Que abordagens usar para evitar a criação direta de uma instância de função no código?
sobes.tech IA
Resposta da IA
Para evitar a criação direta de uma instância de uma função (por exemplo, um objeto ou uma classe) no código, utilizam-se as seguintes abordagens:
-
Método de Fábrica (Factory Method) — cria objetos através de métodos especiais, ocultando os detalhes da criação.
-
Injeção de Dependências (Dependency Injection) — os objetos são passados para a classe de fora, geralmente através do construtor ou de um setter, o que facilita a substituição e os testes.
-
Uso de interfaces e abstrações — o código trabalha com interfaces, e as implementações concretas são criadas e passadas de fora.
-
Expressões lambda e interfaces funcionais — em vez de criar novas classes, pode-se passar funções como parâmetros.
Exemplo com injeção de dependências no Android (Kotlin):
interface ClickHandler {
fun onClick()
}
class MyActivity(private val clickHandler: ClickHandler) {
fun setup() {
// Usamos o manipulador passado em vez de criar um novo
button.setOnClickListener { clickHandler.onClick() }
}
}
Este método aumenta a flexibilidade e a testabilidade do código, além de facilitar a manutenção e a extensão.