Un buon quarto di secolo fa, quando stavo imparando il C ++, mi hanno insegnato che le interfacce dovrebbero essere perdonanti e, per quanto possibile, non preoccuparsi dell'ordine che sono stati chiamati i metodi poiché il consumatore potrebbe non avere accesso alla fonte o alla documentazione al posto di Questo.
Tuttavia, ogni volta che ho fatto da mentore ai programmatori junior e agli sviluppatori senior mi hanno ascoltato, hanno reagito con stupore, il che mi ha fatto chiedere se questa fosse davvero una cosa o se fosse appena passata di moda.
Chiaro come il fango?
Prendi in considerazione un'interfaccia con questi metodi (per la creazione di file di dati):
OpenFile
SetHeaderString
WriteDataLine
SetTrailerString
CloseFile
Ora puoi ovviamente passare attraverso questi in ordine, ma dire che non ti interessa il nome del file (pensa a.out
) o quale intestazione e stringa del trailer sono stati inclusi, puoi semplicemente chiamare AddDataLine
.
Un esempio meno estremo potrebbe essere l'omissione delle intestazioni e dei trailer.
Ancora un altro potrebbe essere l'impostazione delle stringhe di intestazione e trailer prima dell'apertura del file.
È questo un principio di progettazione dell'interfaccia che viene riconosciuto o solo il modo POLA prima che gli venisse dato un nome?
NB non impantanarti nelle minuzie di questa interfaccia, è solo un esempio per il bene di questa domanda.