Olá, tudo bem?
Eu fique com a impressão que a inclusão do Default Method acaba descumprindo os conceitos de SOLID e Design Patterns (Strategy), será que estou enganado?
Olá, tudo bem?
Eu fique com a impressão que a inclusão do Default Method acaba descumprindo os conceitos de SOLID e Design Patterns (Strategy), será que estou enganado?
Olá Adriano, tudo bem com você?
Peço desculpas pela demora em obter um retorno.
Os métodos default
foram introduzidos no Java 8 como uma forma de adicionar funcionalidade às interfaces sem quebrar a compatibilidade com as implementações existentes. Esses métodos permitem que você adicione métodos concretos em uma interface, fornecendo uma implementação padrão que é herdada por todas as classes que implementam essa interface.
A inclusão de métodos default
em interfaces não necessariamente descumpre os princípios do SOLID ou os princípios dos Design Patterns. Na verdade, os métodos default
podem ser úteis em certos casos, desde que sejam usados com cuidado.
Os métodos default
adicionados na interface List
, são projetados para fornecer funcionalidades básicas que são comumente usadas em coleções de listas. Eles não violam os princípios SOLID, uma vez que não estão adicionando responsabilidades adicionais à interface. Em vez disso, eles estão fornecendo implementações padrão para operações comuns, como iteração e classificação, que são esperadas em qualquer implementação de lista.
Em resumo, a inclusão de métodos default em interfaces não é intrinsecamente contra os princípios SOLID ou Design Patterns, desde que seja usado de maneira adequada e não comprometa a coesão e a clareza do design das interfaces e classes.
Em caso de dúvidas estou à disposição.
Abraços e bons estudos!