É utilizada para a definição de entidades do mundo real. Sendo onde são criadas as classes. Essas entidades são consideradas tudo que é real, tendo como consideração as suas características e ações. Como exemplo: a entidade sendo o Carro, a característica sendo seu tipo, cor e tamanho e ações sendo acelerar, ligar
É o processo utilizado para proteger os campos e operações de uma classe (atributos e métodos), permitindo apenas aos membros públicos de serem acessados. Como por exemplo os métodos GET/SET sendo acessados por usuários da mesma classe.
A herança é um princípio que permite criar uma nova classe a partir de uma já existente. ... A principal vantagem da herança é a capacidade para definir novos atributos e métodos para a subclasse, que se somam aos atributos e métodos herdados.
Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação, assinatura, mas comportamentos distintos, especializados para cada classe derivada, usando para tanto uma referência a um objeto do tipo da superclasse. Como por exemplo o método calcularVelocidade(). Ele pode ser usado pela classe carro() e pela classe moto(), são métodos com a mesma identificação mas com comportamentos diferentes.
Coesão se refere ao princípio da responsabilidade única de uma classe.
E acoplamento se refere ao quanto um classe depende de outra para funcionar
Um código com alta coesão e baixo acoplamento, é um código com mais facilidade de manutenção e mudança no negócio.
Esse tipo de arquitetura é uma abordagem para escrever programas de software. Onde a aplicação é dividida em diversos componentes mínimos e independentes, sendo cada serviço.
- Que cada serviço tem a sua responsabilidade, ou seja, um serviço de login não pode cadastrar usuário
- Um serviço deve ser independente, não deve depender de outros serviços que interajam com ele
- Tratativas de falhas inesperadas sem quebras a aplicação
- Entre outros
- Atualização independente sem afetar outros serviços
- Facilidade de manutenção. Sendo mais fácil de entender um erro pelo fato de um serviço ser restrito apenas a um recurso
- Liberdade de escolha de tecnologias, ferramentas ou estruturas dentro de um serviço
Design Patterns ou padrões de projetos são soluções generalistas para problemas recorrentes durante o desenvolvimento de um software. Ou seja, um conjunto de soluções/arquiteturas de projetos específicos para cada situação.
O princípio básico do MVC é a divisão da aplicação em três camadas: a camada de interação do usuário [View], a camada de manipulação dos dados [Model] e a camada de controle [Controller].