Fattore di polimorfismo e manutenibilità del codice

0

Quello che voglio chiarire è che, avendo un fattore di polimorfismo del 100%, significa che il codice diventa difficile da mantenere, e il fattore di polimorfismo elevato introduce un alto livello di accoppiamento anche se l'ereditarietà viene utilizzata per ridurre l'accoppiamento.

Il fattore polimorfico (PF) è una metrica proposta da Abreu & Melo per misurare quanto un tipo derivato sostituisce un metodo dalla classe base. Viene calcolato contando il numero di metodi sottoposti a override rispetto al numero di metodi

    
posta Char 27.01.2018 - 00:47
fonte

1 risposta

6

Non è una buona misura di accoppiamento. Non pensare nemmeno che sia destinato a esserlo. Accoppiamento si verificherebbe se questi metodi sovraccarichi richiamassero alla loro super classe ma non dovessero farlo.

Se non richiamano mai in super e siamo al 100% significherebbe che tutte le implementazioni nel super non sono state utilizzate, almeno per questo sottotipo.

Tutto questo misura veramente quanto l'implementazione proviene dal sottotipo vs il super. Non sono sicuro del perché mi interesserebbe.

Molto più importanti sono quelle chiamate a super. Non vuoi far star male i tuoi lettori inviandoli su e giù nello stack ereditario mentre leggono il codice. Questo è chiamato il problema yo yo e questa statistica non la misura bene.

Il tuo problema potrebbe essere misurato meglio con i clic del mouse, o con i livelli di ereditarietà, o anche con le lacrime che mi vengono in mente.

Oggi tendiamo a favorire la composizione sull'eredità, ma puoi fare lo stesso casino con la composizione. Non è così probabile. Piuttosto, trascina i lettori su e giù per dare loro un buon posto dove stare e pensare a una piccola parte del problema nascondendo il maggior numero di dettagli non necessari dietro astrazioni ben definite che puoi.

    
risposta data 27.01.2018 - 02:13
fonte

Leggi altre domande sui tag