A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Coesão de Classe, Suporte de Estados e de Comportamentos

Apresentações semelhantes


Apresentação em tema: "Coesão de Classe, Suporte de Estados e de Comportamentos"— Transcrição da apresentação:

1 Coesão de Classe, Suporte de Estados e de Comportamentos

2 Suporte de Estados em uma Interface de Classe
Estados ilegais Estados incompletos Estados inapropriados Estados ideais Coesão de Classe

3 Estados ilegais Uma interface de classe que permita estados ilegais, habilita a um objeto o alcance de estados que violam a invariante de classe desse objeto. Por ex: operação moverPonto definida sobre Retângulo >> se permitir que um único vértice se mova independentemente dos outros Coesão de Classe

4 Estados incompletos Uma interface de classe com estados incompletos, permite estados válidos que um objeto não consegue alcançar Por ex: na hipótese que, devido ao desenho pobre da classe Retângulo, todos os retângulos deverão apresentar larguras maiores do que as alturas Coesão de Classe

5 Estados inapropriados
Classe com estados inapropriados propicia ao usuário do lado de fora de um objeto alguns estados que não são partes da abstração de classe do objeto Por ex: uma classe Pilha em que os elementos individuais sejam visíveis (quando o topo deveria ser visível) Coesão de Classe

6 Estados ideais Classe com estados ideais é a que tem o melhor desenho: um objeto pode atingir qualquer estado válido, mas somente os estados válidos. O conhecimento de quais estados são válidos, e quais são ilegais, depende do entendimento da finalidade da classe e da definição de sua invariante de classe. Coesão de Classe

7 Suporte de comportamentos em Interface de Classes
Comportamento ilegal Comportamento perigoso Comportamento irrelevante Comportamento incompleto Comportamento inábil Comportamento replicado Comportamento ideal Coesão de Classe

8 Comportamento ilegal O comportamento ilegal permite a um objeto fazer transições ilegais de um estado para outro Por ex: PedidoDeCliente puder ir do estado de nãoAprovado para cumprido (sem passar por aprovado!) Coesão de Classe

9 Comportamento perigoso
Quando várias mensagens são necessárias para efetivar uma única etapa de comportamento de um objeto, e pelo menos uma mensagem leva a um estado ilegal Por ex: enviar 4 mensagens para deslocar cada vértice de um Retângulo Coesão de Classe

10 Comportamento irrelevante
O comportamento irrelevante em uma interface de classe é o comportamento que simplesmente não pertence a essa classe e a seus objetos Por ex: operação CalcularRestituição DeEmpréstimo em PedidoDeCliente Coesão de Classe

11 Comportamento incompleto
Classe com comportamento incompleto não permite todo o comportamento que deveria ser posto em prática por objetos dessa classe Por ex: estado aprovado em PedidoDeCliente não pode voltar a nãoAprovado (num caso de falência do cliente!) Coesão de Classe

12 Comportamento inábil O comportamento inábil pode requerer duas ou mais mensagens para uma única etapa de comportamento válido. Mas nenhuma delas conduz a um estado ilegal Por ex: mudar a dataDeRemessa em um pedido cumprido exige voltar a aprovado e depois a cumprido de novo Coesão de Classe

13 Comportamento replicado
Uma interface que permite a mesma etapa de comportamento por mais de um modo Ex 1: classe Hominóide: - virarÀDireita - virarNoSentidoHorário(90o) Ex2: classe ContaDeAções: - venderPosição (ações, qtde, out vendaOK) - venderTodasPosiçõesDeAções (out vendaOK) Coesão de Classe

14 Comportamento ideal Um objeto em um estado válido pode mover-se somente para outro estado válido Pode mover-se para outro estado somente por meio de um modo válido Há apenas um modo de utilização da interface a fim de efetivar uma etapa de comportamento Coesão de Classe

15 Exemplo: PilhaAparelho
Topo: Aparelho; Extrair; Empilhar (novoElemento: Aparelho); estáVazia: booleano; estáCheia: booleano; Coesão de Classe

16 Exemplo: PilhaAparelho
Topo: Aparelho; (*) Extrair; (*) Empilhar (novoElemento: Aparelho); estáVazia: booleano; estáCheia: booleano; Coesão de Classe

17 Coesão de Operações em Interface de Classes
Coesão alternada Coesão múltipla Coesão funcional Coesão de Classe

18 Coesão alternada Aparece quando o desenhista combina deversas etapas de comportamento em uma única operação, que, no recebimento de uma mensagem, aplica somente uma etapa de comportamento do objeto Ex: na classe Retângulo: reduzirOuGirar (fatorDeEscala: Real, ânguloDeRotação: Ângulo, oQueFazer: Booleano) Coesão de Classe

19 Coesão múltipla Semelhante à coesão alternada, só que aplica todas as etapas de comportamento! Ex1: Pessoa.alterarEndereçoETelefone Ex2: - área áreaMaiorQue (algumaÁrea: área) (*)>> if retângulo.área > algumaÁrea then … Coesão de Classe

20 Coesão funcional Tanque.encher Retângulo.área ItemDeProduto.peso
PedidoDeCliente.despachar Aeroplano.virar Conta.fazerDepósito Coesão de Classe


Carregar ppt "Coesão de Classe, Suporte de Estados e de Comportamentos"

Apresentações semelhantes


Anúncios Google