1
resposta

Qual é abordagem mais adequada para conteúdos não pontuáveis.

Se a criação da interface "Pontuavel" foi pensada para classes do tipo "Conteúdo" que possuem o recurso de aplicação de pontos de acordo com a regra de negócios. Qual seria a melhor abordagem para objetos do mesmo tipo, "Conteúdo", que por ventura não tenham aplicação de pontos? Aplicar a interface e simplesmente retornar 0 ficaria semanticamente desagradável e testar se é uma classe "pontuável" antes de chamar me parece que feriria alguns dos conceitos e princípios já mencionados. Tendo em vista a impossibilidade de recorrer a captação de uma exceção por gerar um "Erro Fatal" em versões anteriores do PHP e observando também as versões mais recentes, essa seria mesmo a melhor abordagem, captar e tratar a exceção? Qual a melhor abordagem nos dois casos?

1 resposta

Olá, Reinaldo! Tudo bem com você?

Peço desculpa pela demora para responder o seu tópico.

Uma alternativa seria criar uma nova interface, por exemplo, "NaoPontuavel", que seria implementada pelas classes "Conteúdo" que não possuem a aplicação de pontos. Dessa forma, você poderia distinguir facilmente entre as classes "Pontuavel" e "NaoPontuavel" sem comprometer os princípios já mencionados.

Dessa forma, você pode utilizar a interface "Pontuavel" para as classes que possuem a aplicação de pontos e a interface "NaoPontuavel" para as classes que não possuem. Isso mantém a semântica adequada e evita a necessidade de capturar e tratar exceções.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.