Pergunta

Eu tenho comprado Análise e design orientados a objetos com aplicativos, na página 64 O parágrafo 2 explicou sobre "é uma hierarquia" como abaixo.

Em termos de hierarquia "é uma", uma abstração de alto nível é generalizada e uma abstração de baixo nível é especializada. Portanto, dizemos que uma classe de flores está em um nível mais alto de abstração do que uma classe de planta.

Pelo que entendi, acho que Plant é mais generalizada que a Flower então a classe de flores está em mais baixo nível de abstração que a planta.

Eu quero saber neste momento meu entendimento está correto ou o livro está correto? Por favor me esclareça.

Foi útil?

Solução

Eu concordo, esta citação está errada. Pela definição aqui, a planta está em um nível mais alto de abstração que a flor: a definição está correta, os nomes no exemplo são transpostos.

Outras dicas

O exemplo de planta e flor para hierarquias IS-A é provavelmente o pior que já ouvi!

Um carro é um veículo. Um cachorro é um mamífero. Uma conta poupança é uma conta A (n). Todos esses são exemplos típicos e facilmente compreendidos.

O que você citou não parece certo. Eu teria entendido que a planta estava em um nível mais alto de abstração do que a flor, assumindo herda das flores da planta. Portanto,

Uma flor is a Plantar

mas

Uma planta não é necessariamente uma flor

Eu não diria que a afirmação "uma flor é uma planta" é verdadeira, na minha opinião uma planta tem um Flor. Eu acho que há algum contexto faltando.

Eu acho que o autor do livro está explicando sobre hierarquias de herança aqui. Se uma entidade estiver no topo da hierarquia, ela é ou precisa ser mais generalizada (ou abstrata) do que as abaixo na hierarquia. É um design ruim ter uma entidade herdando de outra entidade, mas ser mais abstrata do que seus pais (traduzindo para uma classe abstrata herdando de uma classe concreta).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top