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

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

Conformidade de tipo1 Conformidade de tipo e comportamento fechado.

Apresentações semelhantes


Apresentação em tema: "Conformidade de tipo1 Conformidade de tipo e comportamento fechado."— Transcrição da apresentação:

1 Conformidade de tipo1 Conformidade de tipo e comportamento fechado

2 Conformidade de tipo2 Classe X Tipo zUma classe é uma implementação de um tipo, que é a visão abstrata ou externa de uma classe zUm tipo pode ser implementado sob a forma de diversas classes. Tendo cada classe seu próprio desenho interno

3 Conformidade de tipo3 Por exemplo: > Grupo {abstrato} acrescentarElementos (novoElemento) {abstrato} > Árvore acrescentarElementos (novoElemento) {abstrato} > ÁrvoreUtilizandoID > ÁrvoreUtilizandoMatriz >

4 Conformidade de tipo4 zEmbora um tipo represente a visão externa de uma classe, o conceito de subtipo é distinto do conceito de subclasse! zPor exemplo: Elefante herda de Retângulo {sintaticamente pode ser válido} [semanticamente não tem sentido]

5 Conformidade de tipo5 Princípio da Conformidade de Tipo: Se S é subtipo real de T, então S deve se conformar a T. Ou seja, um objeto de tipo S pode ser provido em qualquer contexto no qual um objeto de tipo T seja esperado, e a exatidão será preservada quando qualquer operação de acesso do objeto for executada.

6 Conformidade de tipo6 Por exemplo: zCírculo é um subtipo de Elipse! Qualquer objeto que for um círculo será também uma elipse. em um desenho OO sadio, o tipo de cada classe deve conformar-se ao tipo de sua superclasse. [contrariando a definição!]

7 Conformidade de tipo7 Como assegurar a Conformidade de Tipo? 1.A invariante da subclasse deve ser, no mínimo, tão forte quanto a da superclasse. Ex: Retângulo >> w1=w2 and h1=h2 Quadrado >> w1=w2 and h1=h2 and w1=h2

8 Conformidade de tipo8 e … 2. deve satisfazer também: 1.Toda operação da superclasse deve ter uma correspondente na subclasse com mesmo nome e assinatura 2.A pré-condição de qq operação não deve ser mais forte do que da superclasse (princípio da contravariação) 3.A pós-condição de qq operação deve ser, no mínimo, tão forte quanto a operação da superclasse (princípio da covariação)

9 Conformidade de tipo9 Ex de conformidade de tipo: Funcionário CalcularBônus (avaliaçãoDeDesempenho, out %DeBônus) Gerente CalcularBônus (avaliaçãoDeDesempenho, out %DeBônus)

10 Conformidade de tipo10 1.invariantes: yFuncionário >> nivelDeFormação > 0 yGerente >> nivelDeFormação > 20! 2. 1.Operações correspondentes (ok) 2.Pré-condição: avaliaçãoDeDesempenho: 0 a 5 para Gerente e Funcionário 0 a 8 maior (mais fraca) para Gerente! 3.Pós-condição: %DeBônus: 0% a 10% para Gerente e Funcionário 0% a 6% menor (mais forte) para Gerente

11 Conformidade de tipo11 Resumo dos requisitos para conformidade de tipo: zPara S ser um subtipo verdadeiro de T: 1.O espaço-estado de S deve ter as mesmas dimensões de T 2.Nas dimensões que S e T compartilham, o espaço-estado de S deve ser igual a, ou residir dentro do espaço-estado de, T 3.S.op deve ter o mesmo nome que T.op

12 Conformidade de tipo12 z 4.A lista de argumentos da assinatura formal de S.op deve corresponder à de T.op 5.A pré-condição de S.op deve ser igual ou mais fraca do que de T.op 6.A pós-condição de S.op deve ser igual ou mais fraca de T.op

13 Conformidade de tipo13 O princípio do Comportamento Fechado: em uma hierarquia de herança baseada em tipo/subtipo, a execução de qualquer operação em um objeto da classe C – incluindo as operações herdadas de suas superclasses – deverá obedecer à invariante de classe de C.

14 Conformidade de tipo14 Caso 1 (sem problemas!) tr1: Polígono Mover (distância: comprimento) mover

15 Conformidade de tipo15 Caso 2 (com problemas!) tr1: Polígono acrescentarVértice (novoVértice: Ponto) acrescentarVértice ?

16 Conformidade de tipo16 Solução: zEvitar a herança de acrescentarVértice zSuprimir acrescentarVértice de forma que ela não tenha qualquer efeito zEstar preparado para reclassificar Triângulo como Quadrilátero (se for admissível pela aplicação)


Carregar ppt "Conformidade de tipo1 Conformidade de tipo e comportamento fechado."

Apresentações semelhantes


Anúncios Google