Questa domanda mi è stata posta nell'intervista MS. Voglio sapere l'esatto problema di design in questo pezzo di codice. Il codice era già stato dato, necessario per trovare il problema del design.Cosa c'è di sbagliato in questo design? Sovrascrittura o sovraccarico di java.util.HashMap
Ho classe MyHashMap che estende la classe Jash HashMap. Nella classe MyHashMap devo conservare alcune informazioni dei dipendenti. La chiave in questa mappa sarà firstName + lastName + Address.
public MyHashMap extends HashMap<Object, Object> {
//some member variables
//
public void put(String firstName, String lastName, String Address, Object obj) {
String key = firstName + lastName+ Address;
put(key, obj);
}
public Object get(String firstName, String lastName, String Address) {
String key = firstName + lastName+ Address;
return get(key);
}
public void remove(Strig key) {
put(key, "");
}
//some more methods
}
Cosa c'è di sbagliato in questo design? Devo sottoclassi HashMap o dovrei dichiarare HashMap come variabile membro di questa classe? O dovrei aver implementato i metodi hashCode/Equals?
Avere l'interfaccia Mappa è un requisito, o è la vostra presa sulla domanda ? – extraneon
È stato affermato che la chiave dovrebbe essere una concatenazione di firstName + lastName + Indirizzo? Per me, un POJO aggiuntivo che combina queste proprietà e implementa equals() e hashCode() sembra una soluzione molto migliore. – ddso
Il codice era già stato assegnato Devo trovare i problemi relativi al progetto, se presenti – Ashish