Repositório com documentos e aprendizado da matéria de POO do curso de Análise e Desenvolvimento de Sistemas - UNILAVRAS
Nessa matéria utilizamos da linguagem Java para colocar em prática os conceitos de Programação Orientadas a Objetos e também Padrões de Design (que caminham juntos) do GoF.
A Programação Orientada a Objetos (POO) é um paradigma de programação que se concentra na criação de objetos, que são instâncias de classes. Em POO, as classes são usadas para definir as propriedades e o comportamento de um objeto.
Por exemplo, se você quiser criar um programa que representa uma conta bancária, pode criar uma classe chamada ContaBancaria. Essa classe pode ter propriedades como o número da conta, o nome do titular da conta e o saldo. Além disso, a classe pode ter métodos para depositar dinheiro, sacar dinheiro e verificar o saldo.
O uso da POO traz vários benefícios, como a reutilização de código, a organização do código em unidades lógicas e a facilidade de manutenção do código. Além disso também vamos entrar a fundo nos pilares da POO, que consiste em funcionalidades e características que se aplicam a esses objetos construídos e como eles se relacionam entre si.
Design Patterns são soluções comuns para problemas de design de software. Eles são soluções testadas e comprovadas que podem ser usadas para resolver problemas semelhantes em diferentes contextos.
Os Design Patterns são geralmente categorizados em três grupos: Creational, Structural e Behavioral. Os Creational Patterns são usados para criar objetos de maneira eficiente e flexível. Os Structural Patterns são usados para organizar objetos e classes em uma estrutura útil. E os Behavioral Patterns são usados para definir como os objetos interagem e se comunicam entre si.
A POO e os Design Patterns estão intimamente relacionados. A POO é usada para criar classes e objetos, e os Design Patterns são usados para definir como essas classes e objetos devem interagir para resolver um problema específico.
Os Design Patterns são baseados em conceitos de POO, como encapsulamento, herança e polimorfismo. Os padrões de criação, por exemplo, são usados para criar objetos de maneira flexível, usando conceitos como a abstração de classes e a fábrica de objetos. Os padrões estruturais são usados para organizar classes e objetos de maneira útil, usando conceitos como a composição de objetos e a adaptação de interfaces. E os padrões comportamentais são usados para definir como os objetos devem se comunicar e interagir, usando conceitos como o método template e o mediator.
Em resumo, a POO e os Design Patterns trabalham juntos para criar software eficiente, flexível e de fácil manutenção.