Classe di contesto nel modello di strategia
https://softwareengineering.stackexchange.com/questions/187378
-
05-11-2019 - |
Domanda
Sto cercando di capire il modello di strategia E chiedermi: la classe di contesto è indispensabile o posso lasciarla senza compromettere lo scopo del modello?
Avevo l'impressione che avevo bisogno di una sorta di switch per leggere diversi tipi di file, ma non volevo solo hackerare qualcosa e in seguito gestire il refactoring (anche se, ovviamente, accade sempre che il codice possa essere refactord ma l'idea era: prova Essere il più intelligente possibile nel design in anticipo ...):
Immagine prelevata da Wikimedia
Il cliente può delegare direttamente all'interfaccia strategica o c'è qualcosa che mi è appena perso per capire sulla classe di contesto?
interface Reader {
// read information from file and fill data list field of Client
readFile();
}
class ExcelReader implements Reader{ /* */ }
class PdfReader implements Reader{ /* */}
class Client{
// strategic choice
Reader r;
// data list field
List<Data> data;
// Client Constructor
public Client(){
if(<file ends in .xls>)
r = new ExcelReader();
else
r = new PdfReader();
r.readFile();
}
}
Quindi, sopra raffigurato è la classe di contesto mancante. Il codice aderisce al modello di strategia?
Nessuna soluzione corretta