L'implementazione specifica sarà diversa, ma il concetto che viene implementato dev'essere lo stesso, se no ovviamente non ha senso. Ad esempio, immaginati una gerarchia di classi per cifrare dei dati: avrai una classe base astratta (AlgoritmoCifratura) con i metodi Cifra e Decifra, e delle classi derivate che implementano gli specifici algoritmi di cifratura.
Quando hai un metodo che deve lavorare con dei dati cifrati (che so, SalvaFile), questo riceverà tra i parametri un generico oggetto di tipo AlgoritmoCifratura; il chiamante gli passerà caso per caso l'algoritmo di cifratura scelto da usare, ma per quanto riguarda SalvaFile tutto ciò che gli importa è ricevere un generico AlgoritmoCifratura di cui usare i metodi Cifra e Decifra.
(poi nella realtà le cose potrebbero essere leggermente più complicate, ma questo era giusto per dare l'idea)

)
Rispondi quotando