Bonjour, à tous.

Sur mon projet Android actuel je suis amenée à devoir transformer des objets en Json et vice versa (pour utiliser des web services).
Étant donnée qu'il existe plusieurs library permettant de parser du Json, je voulais pouvoir changer facilement de library. On m'a parler d’utiliser un wrapper afin de le faire facilement.
J'ai réussit à en faire une première version, fonctionnel, basé sur un enum des libraries utilisables dans mon code puis un switch pour rediriger vers la méthode utilisant la library voulu.
Cependant cette version est très "artisanale" dirons nous, et j'ai cru comprendre qu'une solution plus jolie existait notamment en utilisant des interfaces et de l'injection, c'est ici que je suis un peut perdu. Malgré mes recherches je ne suis pas arrivée à comprendre comment "construire" mon code.

Pour essayer de mieux me faire comprendre, ce que j'ai, qui fonctionne artisanalement:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
public class JSONWrapper {
public enum Library {
	Json, Jackson;
}
public JSONWrapper(Library lib) {
	_lib = lib;
}
public final String ObjectToJSON(final Object object) {
	Library lib = _lib;
	String jsonStr = "";
	switch (lib) {
	case Jackson:
		jsonStr = JSONFactory.ObjectToJSONbyJackson(object);
		break;
 
...
}
et que j’appelle ainsi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
JSONWrapper jsonFactory = new JSONWrapper(Library.Jackson);
jsonOb = jsonFactory.ObjectToJSON(option);
selon mes premières recherches, je devrais pouvoir construire qqch avec

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
public interface ISerialiser{
//méthodes
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
public class JacksonJsonSerializerWrapper implements ISerialiser{
//Overide des méthodes
}
Ma question est comment structurer ce wrapper en utilisant les interfaces? pour l'instant dans mes recherches je n'ai pas réussie à trouver des informations me faisant avancer.

Si vous aviez des pistes à me donner pour mes recherche merci d'avance.