Estou desenvolvendo uma variedade de filtros de postagem para um site wordpress e construí os 4 primeiros com uma única classe.
Os dois finais têm escopo suficientemente diferente para compartilhar apenas uma única função (a função para produzir os links finais) em suas classes.
É razoável, neste caso ou em qualquer número de casos hipotéticos semelhantes, estender a classe original para ter essa funcionalidade ou existe uma maneira melhor?
object-oriented
class-design
Fuzz leve
fonte
fonte
Respostas:
Não, se as duas classes são tão diferentes que compartilham apenas uma função, as chances são de que não são intercambiáveis - e, portanto, quebrariam o princípio da subestação liskov .
Derive apenas de uma classe base se for lógico fazer isso. Compartilhar um único pedaço de código raramente é uma justificativa para a herança :)
Neste exemplo em particular, parece que você deseja reutilizar essa função via composição ...
fonte
Se uma descrição de classe tiver a palavra " e ", ela deverá ser dividida em duas (ou mais) classes. Pela aparência, você pode tornar essa função um membro de outra classe que é referenciada pelas que você possui atualmente.
fonte