Classe de contexte dans le modèle de stratégie
https://softwareengineering.stackexchange.com/questions/187378
-
05-11-2019 - |
Question
J'essaye de comprendre le modèle de stratégie Et me demander: la classe de contexte est-elle indispensable ou puis-je la laisser de côté sans compromettre le but du modèle?
J'avais l'impression où j'avais besoin d'une sorte de changement pour lire différents types de fichiers, mais je ne voulais pas simplement pirater quelque chose et faire face à la refactorisation (bien que, bien sûr, il arrive toujours que le code puisse être refactorisé, mais l'idée était: essayez être aussi intelligent que possible dans la conception au préalable ...):
Image tirée de wikimedia
Le client peut-il déléguer directement à l'interface de stratégie ou y a-t-il quelque chose que j'ai juste manqué pour comprendre la classe de contexte?
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();
}
}
Ainsi, ci-dessus illustré est la classe de contexte manquante. Le code adhère-t-il au modèle de stratégie?
Pas de solution correcte