Bom pessoal, no vídeo anterior a gente falou sobre metrificar a instabilidade de componentes. Agora, uma coisa que a gente faz e é natural de a gente fazer é o que? Pensar sempre em componentes abstratos. Por quê? Porque você trabalhando com componentes abstratos, você consegue diminuir um pouco, né? Você consegue diminuir muito, na realidade, o nível de acoplamento entre os seus componentes, tá? E como que você consegue fazer isso? Bom, se você pensar bem, para garantir estabilidade de algo, é muito simples. É só fazer que algo não mude. E que esse algo não dependa diretamente de alguém. Se esse algo não depender diretamente de alguém e esse algo não mudar, eu tenho esse cara extremamente estável. E se tem algo que a gente consegue manter de forma geral, se a gente tiver boas práticas de desenvolvimento, são as nossas interfaces, exemplo legal e quando estou falando de interface pode ser interface de uma classe mas pode ser um componente que faça interface com outro componente tá nesse caso aqui vamos falar de interface de classe né ou seja eu estou falando de componentes estáticos tá e quando eu tenho componentes estáticos e torno esses caras abstratos, eu consigo diminuir a instabilidade no meu sistema. Por quê? Porque eu posso ter um componente que é estável, e ele vai depender diretamente de uma abstração. E essa abstração pode ser uma interface. E essa interface não muda, eu estou estável. Mas, ao mesmo tempo eu posso ter um outro componente tá que vai precisar ter mais mudanças mas se ele falar a mesma linha a mesma língua que a minha interface esse cara tá tudo ok então quando você começa a perceber dessa forma você começa a ver que realmente, na maioria das vezes, quando a gente não depende de implementações concretas e a gente depende de abstrações, normalmente é isso que acaba fazendo com que o nosso sistema garanta mais estabilidade. Por outro lado, nós temos que ter um cuidado muito grande. E novamente, galera, a diferença entre o remédio e o veneno é a dose. Então, não adianta também querer sair criando 10 interfaces para tudo que você vai fazer. Por quê? Porque quanto maior também o nível de abstração, maior vai ser o grau de dificuldade para você entender o sistema. Então é aquela história. Você quer acoplar, você vê A grudado em B. Você quer abstrair, você vê A grudado em C, B grudado em C. Então, eu tenho que ter um grau de abstração. Agora, se o C está abstraindo D, que está extraindo E, que está abstraindo F, quando você começa a criar camadas absurdas de abstração, o que você vai começar a perceber? de abstração, o que que você vai começar a perceber você vai perceber que as vezes se você tivesse acoplado aqueles caras você ia conseguir evoluir mais rapidamente o seu sistema, por isso que a gente tem que tomar cuidado galera a gente tem que tomar cuidado com a dosagem que a gente usa pra não ter acoplamento demais, mas também pra não utilizar abstrações demais. Tudo em alta dose aqui vai ser um veneno para a sua aplicação.