Ho un oggetto java.util.Map<String, Object>
che contiene diversi tipi di valori. Non voglio lanciare ovunque io faccia un'operazione su questo. Per fare questo, ho creato diverse classi che avvolgono questa mappa e queste classi forniscono metodi di acquisizione diversi che restituiscono valori per chiavi diverse.
Ci sono due opzioni per questo:
public class Wrapper1 {
private final Map<String, Object> map;
public Wrapper1(Map<String, Object> map) {
this.map=map;
}
public MyObject getMyObject() {
return (MyObject)this.map.get("someKey");
}
}
public class Wrapper2 {
private Wrapper2() {
}
public static MyObject getMyObject(Map<String, Object> map) {
return (MyObject)map.get("someKey");
}
}
Come vedi, nel primo sto creando un'istanza di Wrapper1 e accedo all'istanza MyObject per metodo di istanza. In secondo luogo, fornisco la mappa a un metodo statico e accedo alla stessa istanza MyObject.
Quale preferirai di più e perché? Inoltre se questa è una cattiva pratica, per favore fatemelo sapere. Grazie.