Please enable JavaScript.
Coggle requires JavaScript to display documents.
POO, Classe Abstrata, acoplamento e coesao - Coggle Diagram
POO
Encapsulamento
Conceitos
-
É utilizado para impedir o acesso direto ao estado de um objeto (seus atributos) ... disponibilizando apenas métodos para validar e efetivar suas alterações.
Permite ignorar os detalhes de implementação (de como as coisas funcionam internamente) permitindo ao desenvolvedor idealizar seu trabalho em um nível mais alto de abstração;
É o termo formal que descreve a junção de métodos e dados dentro de um objeto de maneira que o acesso a estes dados só seja permitido por meio dos próprios métodos do objeto;
Modificadores de acesso
private
Simbolizado por “-”
Protege o atributo do acesso externo, permitindo ao mesmo ser acessado somente por métodos daquela classe e pelo objeto instanciado;
Get e Set
SET significa colocar, acertar, determinar
GET significa obter, recuperar
default
Simbolizado por “~” ou “ “
Indica que o atributo/método pode ser acessado por objetos do mesmo pacote;
protected
Simbolizado por “#”
Permite o acesso a objetos de classes filhas mas protege do acesso de objetos que não fazem parte da hierarquia de classes ou ao mesmo pacote
public
Simbolizado por “+”
Indica que o atributo/método pode ser acessado por objetos de outras classes;
-
Exemplos
Se um banco reescrever o software (aperfeiçoando-o) ele não precisa avisar todos os clientes ...
A interface não mudou (o que mudou foram detalhes de implementação...)
Aplicação de uso
Esconder os dados (estado do objeto) e as implementações
Publicar as operações criando uma interface da classe, disponível para quem precisar acessar.
Interface
Conceito
Uma classe pode ter uma única superclasse (herança simples), mas pode implementar várias interfaces ... através deste recurso que Java consegue se utilizar dos benefícios da herança múltipla;
Uma interface é um contrato que define um conjunto de métodos públicos vazios que devem ser codificados nas subclasses que implementarem a interface;
Uma interface é como se fosse uma classe 100% abstrata, ou seja, uma coletânea de métodos sem implementação;
-
-
Aplicação de uso
Definir regras
Uma interface é um contrato que define um conjunto de métodos públicos vazios que devem ser codificados nas subclasses que implementarem a interface;
Herança
Conceito
Mecanismo de reutilização de software onde uma nova classe é criada absorvendo membros de uma classe existente e aprimorada com capacidades novas ou modificadas;
Exemplo
-
Exemplo:
Uma classe Funcionário tem nome, cpf e salário. Tem também um método que calcula bonificação de 10% do salário.
Todo Gerente, é um Funcionário e como tem acesso restrito a alguns lugares, ele tem uma senha.
O cálculo da bonificação do Gerente é diferente, sendo 15% do salário.
Aplicação de uso
Permite que elementos mais específicos incorporem a estrutura e o comportamento de elementos mais genéricos;
Alta Coesão
-
Exemplo
Por exemplo, um objeto feito para salvar um cadastro no banco de dados e também gerar mensagens de log não é coeso, pois a responsabilidade de gerar uma mensagem de log não deveria estar nele.
Para que esse objeto fosse coeso, ele deveria ter somente métodos relacionados ao cadastro no banco de dados e os detalhes necessários para realizar esse tipo de operação. Já o log deveria ter uma classe própria para ele.
Aplicação de uso
Um código coeso é um código onde as classes e/ou métodos tem uma única responsabilidade. Ou seja, um método com o nome imprimeSoma() deve IMPRIMIR A SOMA e não CALCULAR A SOMA E IMPRIMI-LA
Queremos mudar a maneira de como imprimir a soma: mudamos o método de imprimir a soma...
Queremos mudar a maneira de calcular a soma: mudamos o método que calcula a soma
Baixo acoplamento
Conceito
O acoplamento é o grau de ligação entre classes, se o acoplamento for alto as classes são engessadas, logo estão limitadas. Para ter baixo acoplamento entra em jogo as abstrações possibilitando trocar as implementações entre objetos.
-
Exemplo
Um exemplo de acoplamento ruim é uma nota fiscal que pega dados de um imposto para fazer o cálculo. O ideal é que a estratégia de cálculo do imposto seja completamente independente e desconhecida da nota fiscal, assim pode ser trocado facilmente.
Se refere ao relacionamento entre as classes. Indica quanto um módulo depende de outro para funcionar. Códigos desacoplados são aqueles de relação fraca, e não dependem de outros para fazer sua funcionalidade básica. É sempre desejável um baixo nível de acoplamento.
Classe Abstrata
Conceito
Uma classe abstrata é uma classe que não pode ser instanciada. não pode ser diretamente utilizada para criar objetos;
-
Metodos abstratos
Uma classe abstrata pode conter métodos abstratos ... ou seja ... métodos sem implementação na classe abstrata que exigem a implementação nas subclasses
A técnica de especificar métodos abstratos permite que o projetista decida quais são os comportamentos que as subclasses devem ter ... mas sem determinar como tais comportamentos serão implementados ...
-
-
-
Aplicação de uso
O propósito de criação de uma classe abstrata é de fornecer uma superclasse apropriada para que outras classes utilizem como base (herança);
-
acoplamento e coesao
-
coesao
-
coesao baixa
criar metodo de valida cpf, dentro da classe Conta
-