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

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

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

Apresentações semelhantes


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

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

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

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

4 Coesão de Classe4 Estados incompletos zUma interface de classe com estados incompletos, permite estados válidos que um objeto não consegue alcançar zPor 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

5 Coesão de Classe5 Estados inapropriados zClasse 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 zPor ex: uma classe Pilha em que os elementos individuais sejam visíveis (quando o topo deveria ser visível)

6 Coesão de Classe6 Estados ideais zClasse com estados ideais é a que tem o melhor desenho: um objeto pode atingir qualquer estado válido, mas somente os estados válidos. zO 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.

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

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

9 Coesão de Classe9 Comportamento perigoso zQuando 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 zPor ex: enviar 4 mensagens para deslocar cada vértice de um Retângulo

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

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

12 Coesão de Classe12 Comportamento inábil zO 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 zPor ex: mudar a dataDeRemessa em um pedido cumprido exige voltar a aprovado e depois a cumprido de novo

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

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

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

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

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

18 Coesão de Classe18 Coesão alternada zAparece 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 zEx: na classe Retângulo: reduzirOuGirar (fatorDeEscala: Real, ânguloDeRotação: Ângulo, oQueFazer: Booleano)

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

20 Coesão de Classe20 Coesão funcional zTanque.encher zRetângulo.área zItemDeProduto.peso zPedidoDeCliente.despachar zAeroplano.virar zConta.fazerDepósito


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

Apresentações semelhantes


Anúncios Google