Java diagrama de herança

Quem Insub:

estudante Im, aprendendo herança java.

Eu fiz um diagrama de classe e eu tive um feedback em sala de aula que eu missuses herança.

(Fazendo programa é “bitcoin mineração”)

Eu fiz uma classe 'Digger', que descreve sobre a máquina de mineração.

E fez uma classe 'ClockConfigurableDigger', que heranças 'digger' classe. Esta classe faz máquina de mineração que pode fazer overclock ou underclock.

E fez uma classe 'DurablityRecoverDigger' que ClockConfigurableDigger'class' heranças. Esta classe pode ambos relógio e mudança recuperar sua durablity.

Meu mentor diz que o uso de herança dessa forma é errado.

E eu estou pensando a razão (por que ele disse isso é errado) é que clockConfigurablityDigger é tem-um relacionamento do que é-um relacionamento de Digger. Isso clockConfigurablity shoudnt ser uma classe criança de classe Digger. Só porque ClockConfigurableDigger tem mais uma função do que a classe Digger.

Você acha que a minha razão é certo?

Ou você tem outra opinião do meu diagrama de classes?

Obrigado pela leitura!

k.wahome:

Composição e herança são poderosos orientadas a objeto paradigmas de programação em estabelecer relações entre classes e objetos.

A herança é Fundamental

A herança é fundamental para programação orientada a objeto. A linguagem de programação pode ter objetos e mensagens, mas sem herança não é orientada a objetos (meramente “baseada em objeto”, mas ainda polimórfica).

... e assim é Composição

Composição também é fundamental para todas as línguas. Mesmo se o idioma não suporta composição (raros nos dias de hoje!), Os seres humanos ainda pensam em termos de peças e componentes. Seria impossível para quebrar problemas complexos em soluções modulares sem composição.

(Declarações acima são citações de Composição vs. Herança: Como escolher? )

Como você distingui-los?

Embora ambos têm a mesma finalidade de estabelecer relações entre classes e objetos (ou seja, polimorfismo, reutilização, especialização e extensão), eles fazem isso de uma forma bastante distinta que os diferencia.

A herança é quando você projetar seus tipos em torno do que eles são e composição é quando você projeta tipos em torno do que eles fazem.

Este pequeno detalhe é bastante significativo no design orientado a objeto. É a base para a regra de ouro, e um princípio de concepção orientada bom objecto, utilizado na determinação de quando a usar tanto paradigmas ou seja herança segue uma IS-A relação de composição, enquanto segue uma TEM-A relação.

Acoplamento

Talvez ainda mais significativa uma diferença de composição e herança é uma ao longo das linhas de acoplamento; o grau de interdependência. Especialmente no cadinho do princípio da responsabilidade única um dos princípios mais fundamentais de um bom design.

Classes e objectos criados através de herança estão fortemente acoplados porque são concebidos em torno do que eles são, portanto, o comportamento é passado para baixo a partir de classes pai / super-/ base para crianças / subclasses daí classes e objectos são derivadas a partir de outros (a relação IS-A).

Por outro lado, aqueles criados através da composição são de baixo acoplamento porque eles são projetados em torno do que eles fazem, assim, são estruturas logicamente maiores que contêm outros execução comportamento desejado que é muito mais contidos e "isoladas".

Acoplamento é um fator crítico que determina a complexidade de manutenção.

Entre eles, a herança é muito mais mal utilizado, talvez, porque em face disso, a composição parece ser mais complexo; ele realmente não é. O problema Círculo-elipse explica as armadilhas de usar (em vez mis-usando subtipo) polimorfismo (herança) na modelação de objectos.

Composição sobre herança

Há um princípio de programação orientada a objeto que as aulas devem atingir o comportamento polimórfico e reutilização de código por sua composição em vez de herança a partir de uma base ou classe pai. Esta é a composição sobre herança ou princípio reutilização compósito.

De Barbara Liskov substituição de Liskov é um teste que pode ser útil para decidir se a usar composição ou herança.

Composição vs. Herança: Como escolher? é uma ótima leitura sobre o assunto.

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=362957&siteId=1
Recomendado
Clasificación