Perché lanciare un'eccezione 'deve implementare questa funzione' piuttosto che rendere astratta la funzione?

3

Nelle librerie del supporto Android qui le funzioni destroyItem e instantiateItem generano un'eccezione se non vengono sovrascritte:

175        throw new UnsupportedOperationException(
176                "Required method instantiateItem was not overridden");

Perché gli sviluppatori non dovrebbero semplicemente rendere astratte le funzioni? Non sarebbe il modo più corretto per garantire che le funzioni vengano sovrascritte, da una prospettiva OOP?

    
posta Matt Lyons 04.11.2015 - 09:07
fonte

1 risposta

4

I creatori della scheda probabilmente non vogliono forzare gli sviluppatori ad estendere la classe per implementare i suddetti metodi a meno che non ne abbia davvero bisogno.

Puoi estendere la classe senza la necessità di usare i metodi citati, se sono stati dichiarati astratti, dovresti scrivere un codice che non useresti mai, o lanciare l'eccezione da solo.

Vai avanti e controlla YAGNI.

    
risposta data 04.11.2015 - 09:20
fonte