Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouRyan Manuel Alterado mais de 10 anos atrás
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.