Conceitos Fundamentais de POO, Relacionamentos e Testes
Classificado em Computação
Escrito em em
português com um tamanho de 3,55 KB
Fundamentos da Orientação a Objetos (OO)
Objeto
Elemento do mundo real que possui relevância para a solução do problema. Possui características.
Características
Conjunto de informações que definem o objeto (Ex: CPF, Nome, Celular).
Estado
Conjunto de informações que identificam o objeto em um momento específico (Ex: CPF: 460.359.398-06).
Operações (Comportamento)
- Objetivo: Consultar ou alterar o estado de um objeto.
- Responsável pelo processamento em sistemas Orientados a Objetos (OO).
Classe
É a especificação do objeto. Representa o conjunto de objetos que têm os mesmos atributos, operações, relacionamentos e semântica.
Objeto vs. Classe
O objeto é a instância de uma classe.
Abstração
É o processo de focar em um grupo de objetos com as mesmas propriedades, comportamento, relacionamento e semântica.
Definição e Propósito da Abstração
- Selecionar determinados aspectos do problema.
- Isolar o que é importante ou não para a solução do problema.
- Está relacionada à capacidade de resolver o problema.
Comunicação e Visibilidade
Mensagem Síncrona
Mensagens que implicam um sincronismo rígido entre o objeto que envia e os objetos que recebem a mensagem.
Mensagem Assíncrona
Não há dependência do estado do objeto chamador e do processamento do objeto chamado.
Visibilidade (Métodos e Atributos)
- Públicos: Podem ser acessados por qualquer parte do sistema.
- Privados: Só podem ser acessados dentro da classe em que estão declarados.
Relacionamentos em Orientação a Objetos
Herança
Ocorre quando uma classe filha herda todos os atributos e métodos da classe mãe.
Agregação e Composição
Ambos descrevem situações onde um objeto faz parte de outro (relacionamento "todo-parte"). A diferença fundamental reside no ciclo de vida dos objetos.
Agregação
A existência de um objeto da Classe B (a parte) é independente da existência de um objeto da Classe A (o todo). Exemplo: Carro e Motor.
Composição
A existência de um objeto da Classe B (a parte) depende da existência de um objeto da Classe A (o todo). O objeto B não existe sem o objeto A.
Associação
Apenas indica que um objeto pode se relacionar com outro. É o relacionamento mais genérico. Exemplo: Cliente e Produto (relação de compra).
Dependência
Ocorre quando um objeto depende de outro (geralmente passado como parâmetro) para executar um determinado comportamento. Exemplo: Leitora de Cartão e Cartão.
Asserções Comuns em Testes Unitários
assertEqual- Testa se o valor do primeiro e do segundo parâmetros são iguais. O teste falha se forem diferentes.
assertNotEqual- Testa se o valor do primeiro e do segundo parâmetros são diferentes. O teste falha se forem iguais.
assertTrue/assertFalse- Verifica a condição booleana da expressão.
assertIs/assertIsNot- Compara se dois objetos são o mesmo (comparação de identidade).