SÓLIDO — De Zero a Batata 5

Sobre o Princípio de Inversão de Dependência (DIP) neste artigo, este será o último artigo sobre SOLID.

Hoje continuarei explicando sobre o Princípio de Inversão de Dependência (DIP) neste artigo. Estaremos familiarizados com outros princípios no SOLID porque, mesmo que não saibamos sobre o princípio SOLID , podemos aprender com o código de nosso sênior, vários artigos médios e tutoriais, mas você será muito raro ouvir o que é Inversão de Dependência e como devemos usá-la e por que devemos usá-la.

Aliás, se você já trabalha como Desenvolvedor Android não confunda com Injeção de Dependência. Você já estará familiarizado com as bibliotecas populares Dagger, Hilt e Koin. Esses dois são muito diferentes, então tenha cuidado ao explicar, especialmente em entrevistas.

A injeção de dependência é uma técnica de implementação para preencher variáveis ​​de instância de uma classe. A Inversão de Dependência é uma diretriz geral de design que recomenda que as classes só tenham relacionamentos diretos com abstrações de alto nível.

Princípio de Inversão de Dependência (DIP): Módulos de alto nível não devem depender de módulos de baixo nível; ambos devem depender de abstrações.

Deixe-me explicar com uma implementação de código simples, depois disso você entenderá melhor sobre o DIP. Como de costume, vamos começar com Studentuma classe que depende de uma Teacherclasse para executar algumas funcionalidades:

class Student(private val teacher: Teacher) {
    fun askQuestion(question: String) {
        teacher.answerQuestion(question)
    }
}

então vamos refatorar para aderir ao DIP , podemos introduzir uma abstração entre as classes Studente :Teacher

interface QuestionAnswerer {
    fun answerQuestion(question: String)
}

class Teacher : QuestionAnswerer {
    override fun answerQuestion(question: String) {
        // answer the specified question
    }
}

class Student(private val questionAnswerer: QuestionAnswerer) {
    fun askQuestion(question: String) {
        questionAnswerer.answerQuestion(question)
    }
}

Isso segue o DIP porque a Studentclasse agora depende de uma abstração ( QuestionAnswerer) em vez de uma implementação concreta ( Teacher). Isso permite maior flexibilidade e extensibilidade, pois qualquer classe que implementa a QuestionAnswererinterface pode ser usada como uma dependência da Studentclasse, não apenas da Teacherclasse.

Depois de ver a versão refatorada, espero que você entenda por que devemos usar a Inversão de Dependência também. O DIP ajuda a desacoplar os componentes em seu aplicativo e pode tornar seu código mais flexível, sustentável e mais fácil de testar.

Obrigado por tomar o tempo para ler este artigo. Espero que minha escrita tenha sido informativa e instigante. Boa codificação para todos vocês antes.

Artigo anterior sobre SOLID :

Princípio de Responsabilidade Única (SRP) :https://medium.com/arpalar-tech/solid-from-zero-to-potato-e7b5cfe8c7a1

Princípio Aberto/Fechado (OCP): https://medium.com/arpalar-tech/solid-from-zero-to-potato-2-5a4c17bd8ec8

Princípio da Substituição de Liskov (LSP): https://medium.com/arpalar-tech/solid-from-zero-to-potato-3-94d6f63dbbfe

Princípio de Segregação de Interface (ISP):https://medium.com/arpalar-tech/solid-from-zero-to-potato-4-d1d9b42c3a78

Suggested posts

Encontrar informações sobre nomes de domínio

Um trecho de Small, Sharp Software Tools por Brian P. Hogan

Encontrar informações sobre nomes de domínio

Quando você faz uma solicitação para facebook.com, seu computador procura o nome de domínio para traduzir esse nome de domínio em um endereço IP para que seu computador possa fazer essa conexão.

A palavra D e a palavra L em UI Design. Questões de Linguagem. Não seja racista.

A palavra D e a palavra L em UI Design. Questões de Linguagem. Não seja racista.

Nossa linguagem é uma ferramenta poderosa que pode moldar nossos pensamentos, atitudes e ações. Mesmo termos aparentemente inofensivos podem perpetuar preconceitos e estereótipos nocivos.

Related posts

A Mentira do Cowboy

Como as megacorporações venderam aos americanos uma mentira robusta

A Mentira do Cowboy

É uma manhã brilhantemente dourada nas colinas do oeste, enquanto os primeiros raios de sol iluminam a grama congelada nas planícies. Um rebanho de gado Angus plácido, preto e maciço, é recortado contra o nascer do sol enquanto segue por uma trilha batida até um local que todos conhecem bem; a barra de café da manhã.

Journal Ouvert

Journal Ouvert

Diário aberto: uma foto por dia. Sempre fui fascinado por histórias.

That Threat Archive: Vol 7 Black Basta

That Threat Archive: Vol 7 Black Basta

No mundo interconectado de hoje, a ameaça de ataques cibernéticos é mais prevalente do que nunca. Criminosos cibernéticos e agentes de estado-nação estão constantemente buscando explorar vulnerabilidades e roubar dados valiosos, representando um risco significativo para organizações de todos os tamanhos.

O primeiro livro de uma criança sobre como ficar chapado

O primeiro livro de uma criança sobre como ficar chapado

(Aviso - isso é sátira, com a intenção de ser alegremente subversivo - definitivamente não é para crianças) Você viu sua mãe e seu pai se esconderem na cozinha e fumarem aqueles cigarros fedorentos. Eles dizem a você.