Différencier des classes en fonction d'un attribut
Bonjour,
Mon problème est le suivant :
J'ai plusieurs classes (ex : ListResponse, DeleteResponse, etc) qui hérite d'une classe Response. Chaque classe fait autre chose en fonction d'un type (ex : list, delete, etc).
Mon objectif est de récupérer la classe en fonction de ce type, sans passer par un traitement du type :
Code:
1 2 3 4 5 6
|
if(type.equals("list")){
ListResponse resp = new ListResponse();
} else if (type.equals("delete")){
DeleteResponse resp = new DeleteResponse();
} |
J'aimerai plutôt enregistrer chaque type de réponse dans une HashMap, du style :
Code:
1 2 3 4
|
HashMap<String, Response> map = new HashMap<String, Response>();
map.add("list", new ListResponse());
map.add("delete", new DeleteResponse()); |
et récupérer la classe voulue en fonction du type :
Code:
1 2
|
Response resp = (Response)map.get("list"); |
Est-ce la bonne procédure? Est-ce que mon objet "resp" sera du type souhaité?