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

Conversas Perigosas

Conversas Perigosas

Se quisermos continuar a prosperar neste planeta, teremos que ter conversas perigosas. Aqueles que desafiam o que temos feito, o que estamos fazendo e o que estamos determinados a continuar fazendo (ou planejamos fazer).

Como Salvar o Planeta e Ganhar Dinheiro

Como Salvar o Planeta e Ganhar Dinheiro

Quantas vezes você jogou fora uma garrafa de plástico, uma jarra de vidro, uma lata de alumínio ou uma embalagem de energia verde sem pensar duas vezes? Quantas vezes você desejou receber algo em troca de reciclá-los? Se você for como a maioria das pessoas, a resposta provavelmente é muitas vezes. A reciclagem é muitas vezes vista como um aborrecimento, uma tarefa árdua ou um dever que não traz nenhum benefício imediato ou tangível.

O que você pode fazer em sua temporada de espera (esperando para conseguir seu primeiro emprego em tecnologia)

O que você pode fazer em sua temporada de espera (esperando para conseguir seu primeiro emprego em tecnologia)

Mudar para uma nova carreira pode ser extremamente desafiador se você tentar fazer isso sozinho. É importante encontrar parceiros de responsabilidade que estejam no mesmo nível de aprendizado que você, que compartilhem objetivos, tenacidade e motivação semelhantes.

Chega de senhas — como as senhas substituirão sua senha

Chega de senhas — como as senhas substituirão sua senha

Para evitar ambigüidade, os seguintes termos serão usados; Autenticador; O celular que está sendo utilizado para fazer o login no Site; O site ou aplicativo que o usuário está usando para fazer a solicitação de login do Serviço; O fornecedor que fornece o serviço fornecido, por exemplo