Uma pergunta para os especialistas do OOP. - página 42

 
Artyom Trishkin:
Classificação clara. Se vemos que vários objetos têm as mesmas propriedades, é lógico descrever essas propriedades em um único objeto pai.
Se um objeto criança sobrepõe uma propriedade de um objeto pai com o mesmo nome, esta propriedade deve ser virtual.

E se o objeto herdar propriedades e métodos de diferentes classes?

Se estamos lidando com uma estrutura de dados crescente e de reconstrução dinâmica (Knowledge Base), precisamos usar "material herdado" de objetos já preparados para criar novos objetos. Neste caso, os objetos serão sintetizados por herança múltipla, recolhendo material extra herdado. E, portanto, não funcionará adequadamente. Ou seja, chegaremos a objetos degenerados assim que a herança múltipla começar. Esse é o problema...

 
Реter Konow:

E se um objeto herdar propriedades e métodos de diferentes classes?

Se estamos lidando com uma estrutura de dados crescente e de reconstrução dinâmica (Knowledge Base), precisamos usar "material herdado" de objetos já preparados para criar novos objetos. Neste caso, os objetos serão sintetizados por herança múltipla, recolhendo material extra herdado. E, portanto, não funcionará adequadamente. Ou seja, chegaremos a objetos degenerados assim que a herança múltipla começar. Esse é o problema...

Em um novo objeto, não utilize as propriedades dos pais "remanescentes". No entanto, posso ver em você algum mal-entendido. Por que "dar a luz" a um objeto de alguém cujas propriedades não são necessárias?
 
fxsaber:

O conjunto de ferramentas relevante está disposto. Ninguém precisa disso, exceto o autor.

E há também a necessidade de um. Mas também ninguém vai precisar dele.

A mesma situação com a KB, artigos, etc.


Os desenvolvedores introduziram caracteres personalizados, serviços, carrapatos, cachês, pips,.... Estou surpreso que eles tenham feito isso, pois são apenas alguns, se é que algum, que precisam.

Vamos pegar o novo modo pips do testador. Quem precisa disso? -Ninguém de fato! Ela nasceu como uma visão de uma significativa otimização algorítmica do testador por parte de seus desenvolvedores. Quem entendeu sua utilidade? -Ninguém! E assim em tudo.

Agora o Testador está sendo modificado significativamente. Mas estas modificações não têm nenhuma utilidade para ninguém. Bem, há nerds que vão apreciar isso. Em sua forma atual, o MT5-Tester é mais frio do que todos os seus concorrentes. Mas por alguma razão eles querem torná-lo ainda mais frio. Ninguém é capaz de avaliar suas características atuais, para não mencionar as futuras. Os desenvolvedores estão várias cabeças acima de seus usuários. E claramente a motivação para mudanças no Testador não é a monetização (simplesmente não pode ser, se ninguém a entender), mas um desejo interno de fazer algo sem precedentes.

+
 
Artyom Trishkin:
No novo objeto, não use propriedades de pais "remanescentes". No entanto, vejo algum mal-entendido com você. Por que "dar a luz" a um objeto de alguém cujas propriedades não são necessárias?

Necessário, mas não completamente. O novo objeto usa 3 propriedades da classe A, 5 propriedades da classe B, e 3 métodos, de três outras classes.

O que deve fazer com o resto das propriedades dessas classes? Como restringi-la a partir deles?

 
Реter Konow:

Necessário, mas não completamente. O novo objeto usa 3 propriedades da classe A, 5 propriedades da classe B, e 3 métodos, de três outras classes.

O que deve fazer com o resto das propriedades dessas classes? Como restringi-la a partir deles?

Pacote 3 propriedades da classe A em um objeto. Herdar dela. Ou você não pode herdar, e fazer do objeto com três propriedades uma propriedade do objeto requerido.
Existe um sistema circulatório - um objeto com múltiplos objetos. Há um objeto cardíaco como parte do sistema circulatório.
Para um novo objeto, se for necessário um coração no novo objeto, então herde do objeto coração, não do sistema circulatório.
 
Artyom Trishkin:
Existe um sistema circulatório - um objeto com muitos objetos. Há um objeto cardíaco como parte do sistema circulatório.
Para um novo objeto, se um coração é necessário no novo objeto, então herde do objeto coração, não do sistema circulatório.

Se um objeto novo precisa de um coração, ele não precisa herdar de um coração. O coração deve ser feito parte do novo objeto, como membro.

Herdar se o novo objeto for um objeto dos ancestrais. E use a inclusão se o novo objeto for COM o outro.

 
Artyom Trishkin:
Pacote 3 propriedades da classe A em um objeto. Herdar dela. Ou você não pode herdar, mas fazer de um objeto com três propriedades uma propriedade do objeto requerido.

Três propriedades para combinar em um objeto e fazer uma propriedade de um novo objeto? Isso é algo para se pensar...

Mas, a herança através de muitas cadeias longas gera problemas semelhantes a cada passo. Quanto mais longas e diversificadas forem as cadeias de herança, mais "misturas" de propriedades e métodos as últimas gerações de objetos se tornarão e mais difícil será derivar sua cadeia individual para o objeto base.

Se não for herdado - não haverá acesso ao objeto base. Se herdados, a múltipla "filiação" de objetos impede a rastreabilidade de sua cadeia direta até o objeto de base.

Torna-se cada vez mais difícil isolar suas próprias propriedades e métodos das outras classes.

 
Реter Konow:

Três propriedades para combinar em um objeto e fazer uma propriedade de um novo objeto? Isso é algo para se pensar...

Mas, a herança através de muitas cadeias longas gera problemas semelhantes a cada passo. Quanto mais longas e diversificadas forem as cadeias de herança, mais "misturas" de propriedades e métodos as últimas gerações de objetos se tornarão e mais difícil será derivar sua cadeia individual para o objeto base.

Se não for herdado - não haverá acesso ao objeto base. Se herdados, a múltipla "filiação" de objetos impede a rastreabilidade de sua cadeia direta até o objeto de base.

Torna-se cada vez mais difícil extrair de outras classes suas próprias propriedades e métodos.

Peter, eu te recomendo vivamente

https://en.wikipedia.org/wiki/Code_Complete

Code Complete - Wikipedia
Code Complete - Wikipedia
  • en.wikipedia.org
Code Complete
 
Andrey Barinov:

Se o coração é necessário no novo objeto, não é necessário herdá-lo do coração. O coração deve ser feito parte do novo objeto, como um membro.

Herdar se o novo objeto for o objeto ancestral. E use a inclusão se o novo objeto CONTINUAR outro.

Não era isso que eu queria dizer. Você sabe o que quero dizer. Se você quiser um coração modificado com as propriedades dos pais.
 
Реter Konow:

Três propriedades para combinar em um objeto e fazer uma propriedade de um novo objeto? Isso é algo para se pensar...

Mas, a herança através de muitas cadeias longas gera problemas semelhantes a cada passo. Quanto mais longas e diversificadas forem as cadeias de herança, mais "misturas" de propriedades e métodos as últimas gerações de objetos se tornarão e mais difícil será derivar sua cadeia individual para o objeto base.

Se não for herdado - não haverá acesso ao objeto base. Se herdados, a múltipla "filiação" de objetos impede a rastreabilidade de sua cadeia direta até o objeto de base.

Torna-se cada vez mais difícil isolar suas próprias propriedades e métodos das outras classes.

Peter. É por isso que eu digo que não se deve herdar uma herança sem sentido. Uma divisão e classificação claras.
Razão: