Princípios da Programação Orientada a Objetos
Projeto de estudo desenvolvido a fim de entender as boas práticas em Java O programa simula a área de RH na parte de remuneração, onde são concedidos ajustes salariais com base na promoção de funcionarios a novos cargos conforme o desempenho.
- SRP — Single Responsibility Principle - uma classe deve ser especializada em um único assunto e possuir apenas uma responsabilidade dentro do software, ou seja, a classe deve ter uma única tarefa ou ação para executar.
- OCP — Open-Closed Principle - objetos ou entidades devem estar abertos para extensão, mas fechados para modificação, ou seja, quando novos comportamentos e recursos precisam ser adicionados no software, devemos estender e não alterar o código fonte original. Separe o comportamento extensível por trás de uma interface e inverta as dependências.
- LSP— Liskov Substitution Principle - Uma classe derivada deve ser substituível por sua classe base. (Polimorfismo) Seguir o LSP nos permite usar o polimorfismo com mais confiança. Podemos chamar nossas classes derivadas referindo-se à sua classe base sem preocupações com resultados inesperados.
- ISP — Interface Segregation Principle - Uma classe não deve ser forçada a implementar interfaces e métodos que não irão utilizar. Esse princípio basicamente diz que é melhor criar interfaces mais específicas ao invés de termos uma única interface genérica.
- DIP — Dependency Inversion Principle - Dependa de abstrações e não de implementações. A inversão de dependências e de propriedade incentiva a reutilização de superior/política de camadas. Camadas superiores podem usar outras implementações dos serviços menores.
Com os princípios adotados é possível obter um código com menor acomplamento, mais coeso e encapsulado, favorecendo a leitura e manutenção do sistema.
Projeto criado com a linguagem Java.