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

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

Perigos1 Perigos da herança e do polimorfismo. Perigos2 Abusos da herança: Uso exagerado da herança! zConjuntos equivocados zHierarquia invertida zConfusão.

Apresentações semelhantes


Apresentação em tema: "Perigos1 Perigos da herança e do polimorfismo. Perigos2 Abusos da herança: Uso exagerado da herança! zConjuntos equivocados zHierarquia invertida zConfusão."— Transcrição da apresentação:

1 Perigos1 Perigos da herança e do polimorfismo

2 Perigos2 Abusos da herança: Uso exagerado da herança! zConjuntos equivocados zHierarquia invertida zConfusão de classe com instância zUtilização inadequada

3 Perigos3 Conjuntos equivocados: Aeronave AsaCaudaFuselagemMotor

4 Perigos4 Conjuntos equivocados: Aeronave AsaCaudaFuselagemMotor Herança NÃO É Composição Asa não é uma espécie de aeronave!

5 Perigos5 … Aeronave AsaCaudaFuselagemMotor Uma aeronave é uma asa, uma cauda, um motor e uma fuselagem

6 Perigos6 … Aeronave AsaCaudaFuselagemMotor Uma aeronave é uma asa, uma cauda, um motor e uma fuselagem Uma aeronave é, simultaneamente, uma espécie de asa, uma espécie de cauda, …

7 Perigos7 Hierarquia invertida MembroDeDiretoria Gerente Funcionário Correto ?

8 Perigos8 Hierarquia invertida MembroDeDiretoria Gerente Funcionário Um membro da Diretoria é uma espécie de Gerente, e um Gerente é uma espécie de Funcionário.

9 Perigos9 Confundir classe com instância Urso EspécieAmeaçada DeExtinção Panda Quais são as instâncias das 3 classes ?

10 Perigos10 Utilização inadequada (!) Cubóide /volume volume ampliar (…) rodar (…) Quarto As operações de ampliar e rodar são válidas ?

11 Perigos11 O perigo do Polimorfismo Promove concisão! zPolimorfismo de operações zPolimorfismo de variáveis zPolimorfismo de mensagens zPolimorfismo e generalidade

12 Perigos12 Polimorfismo de operações escopo de polimorfismo de uma operação op é o conjunto de classes sobre as quais é definida op. A classe A junto com todas suas subclasses forma um cone de polimorfismo, tendo A como vértice de polimorfismo

13 Perigos13 Exemplo válido: Polígono RetânguloTriânguloHexágono

14 Perigos14 Exemplo inválido: Imprimir

15 Perigos15 Polimorfismo de variáveis O escopo de polimorfismo de uma variável v é o conjuto das classes às quais os objetos referidos por v (durante a existência inteira de v) podem pertencer.

16 Perigos16 Exemplos: zvar t: Triângulo permite que T aponte para qq Triângulo ou seus descendentes OK zVariável v aponte para Cavalo, Círculo ou Cliente Não OK zAponte para Objeto, que está no topo de uma hierarquia de classes OK

17 Perigos17 Polimorfismo em mensagens: Na passagem de uma mensagem temos: objetoDestinatário.operaçãoDestinatária COP: Cone de Polimorfismo do Objeto e Cone de Polimorfismo da Operação

18 Perigos18 Caso 1: COP de operaçãodestinatária COP de objetodestinatário

19 Perigos19 Caso 2: COP de operaçãodestinatária COP de objetodestinatário

20 Perigos20 Exemplos: zdispositivoDeFábrica.ligar yCASO 1: a msg aponta para Torneira, Motor ou Luz yCASO 2: aponta para qq hardware: Torneira, Motor, Luz, Tubo, Tanque, Porta, Alavanca, …

21 Perigos21 Polimorfismo e generalidade zA classe parametrizada: ÁrvoreDeClasse pode gerar: árvoreDeNúmeroReal := ÁrvoreDeClasse.Novo; e dentro da ÁrvoreDeClasse: nó := ClasseDeNó.Novo;

22 Perigos22 Problema: zO desenhista não tem idéia da classe efetiva que será passada em run-time: yÁrvoreDeClasse.Nova yÁrvoreDeClasse.Nova Pode haver problema se objeto da classe Animal receber comunicação de imprimir a si próprio!

23 Perigos23 Soluções: 1.O usuário de classe parametrizada ser responsável e só aceitar classes dinâmicas que sejam compativeis (sic!) 2.Definir Condição de Guarda (mecanismo da Linguagem Eiffel!)


Carregar ppt "Perigos1 Perigos da herança e do polimorfismo. Perigos2 Abusos da herança: Uso exagerado da herança! zConjuntos equivocados zHierarquia invertida zConfusão."

Apresentações semelhantes


Anúncios Google