Sono coinvolto in un progetto con diversi moduli. Ho scoperto che i programmatori hanno progettato un modulo per essere facilmente disaccoppiato dai suoi moduli dipendenti utilizzando Java Reflection. Se altri moduli devono chiamare un metodo in questo modulo, i programmatori si aspettano che usino il reflection per chiamarlo. Ciò ha comportato molti luoghi con le chiamate di riflessione codificate . Con hard-coded, voglio dire che i nomi delle classi e dei metodi sono permanentemente fissati come stringhe, il che sconfigge lo scopo della riflessione che dovrebbe essere per la programmazione dinamica.
Come può essere giustificato? Sento che sono novizio su di esso e uso improprio dell'API di riflessione. Penso che il polimorfismo sia il modo giusto per disaccoppiare un modulo da un altro senza rompere le funzionalità. (Sfortunatamente, cambiare l'intero codice base in polimorfismo è troppo di manutenzione.)