[MÚSICA] Olá a todos! Meu nome é Eduardo Guerra, esse é o Curso de Desenvolvimento Ágil com Padrões de Projetos. Nessa aula eu vou estar falando para você pouquinho sobre a questão da orientação a objetos e os padrões, certo? Então a ideia nessa aula, desse primeiro módulo, vai ser dar uma recapitulada aí nos conceitos da orientação a objetos e aí nessa aula aqui a gente vai ver o porquê fazer isso é importante. Então, quando a gente aprende a programar orientado a objeto é como se a gente estivesse aprendendo ali uma gramática nova de uma linguagem. A gente poderia até de repente saber programar de uma forma diferente, como, por exemplo, a programação estruturada, que muita gente têm como o primeiro paradigma de programação e aí quando a gente está aprendendo a orientação a objetos, a gente está aprendendo, digamos assim, como se fosse novas formas de formar uma frase uma linguagem. E aí às vezes as pessoas me perguntam, para que é que eu ainda preciso saber padrões? Eu não sei tudo que a linguagem me oferece? Eu já entendi como é que é a herança, polimorfismo e etc. E eu preciso ainda saber mais alguma coisa? Então, uma analogia que eu gosto de fazer, é que enquanto você uma linguagem, quando você aprende uma linguagem orientada a objetos é como se você estivesse aprendendo a escrever, quando você aprende os padrões de projeto, você está aprendendo a escrever uma redação. Então, por exemplo, quando a gente está escrevendo texto argumentativo, normalmente a gente faz uma introdução, situa o leitor, apresenta os argumentos, no final faz fechamento. Então assim, só sabendo aquelas estruturas gramaticais e a formar frases não significa que vamos fazer uma boa redação. Então, o padrão de projeto ele é meio que, ele serve como uma forma de você estruturar o software como todo, não simplesmente saber: que a herança funciona assim ou polimorfismo funciona assado. Mas entender como usar isso tudo junto para criar uma estrutura maior e a partir dessa estrutura conseguir estar criando software maior ao redor dela. Então, por mais que nesse curso a gente vai aprender a criar aí essa redação, é importante que a gente tenha esses conceitos bem consolidados. Como é que eu vou querer escrever texto inteiro sem saber escrever uma frase direito? Como é que eu vou usar padrão que utiliza herança, que utiliza polimorfismo se esses conceitos não estão maduros? Então, esse primeiro módulo é para recapitular aí esses conceitos básicos da orientação a objetos. Então, quais são eles? São a abstração de dados, herança, encapsulamento e polimorfismo. Então, aí fazendo paralelo aí com os quatro elementos. A abstração de dados sendo aí o essencial para a gente ter a orientação a objetos que seria aí o nosso ar. A herança, que a gente consegue trabalhar com diferentes níveis de profundidade aí no que diz respeito a questão das abstrações e por essa questão da profundidade é a água. O encapsulamento, onde a gente vê a interface externa e não sabe o que está atrás e por ser essa barreira sólida de abstração o encapsulamento é o nosso elemento terra. E o polimorfismo é o fogo, porque, a partir do polimorfismo você pode ter objeto assumindo diferentes formas, polimorfismo é varias formas e por isso ele é o nosso elemento de transformação que é o elemento fogo. Então, cada uma das próximas aulas a gente vai falar pouquinho mais sobre isso daí, mas sobre uma perspectiva de quem já sabe orientação a objetos. Então, não se preocupe aí: vou ter que aprender tudo de novo, está repetindo? Não. Vai ser uma coisa bem concisa e vai ser meio que uma visão de quem já têm esses conceitos pouco mais maduros, certo? Então, é isso, esses princípios aí que a gente vai ver eu acho importante retomar nesse primeiro módulo porque eles vão ser bastante utilizados nos padrões, certo? Continue assistindo esse módulo para você ver, a gente viu aí a importância de você entender esses conceitos básicos para ver os padrões e continue assistindo aí, na próxima aula, até mais. [MÚSICA]