Ho un algoritmo con parti per lo più invarianti che devono essere riutilizzati all'interno di una classe in modo da rimanere DRY .
Duplicazione del codice con struttura del metodo ripetuta
public void save(String key, int value) {
try {
if (isValidWrite()) {
// Only variable part
editor.putInt(key, value);
if (!writeOnDisable){
write(editor);
Log.v(TAG, "Saved " + key + " | "+ value);
}
}
} catch (Exception e) {
Log.e(TAG, "save", e);
}
}
public void save(String key, String value) {
try {
if (isValidWrite()) {
// Only variable part
editor.putString(key, value);
if (!writeOnDisable){
write(editor);
Log.v(TAG, "Saved " + key + " | "+ value);
}
}
} catch (Exception e) {
Log.e(TAG, "save", e);
}
}
Soluzione?
- Il modello di metodo del modello non è applicabile, poiché richiede la sottoclassificazione.
- Strategia: ho davvero bisogno di creare un'interfaccia e fornire diverse implementazioni per passare a un metodo generalizzato come delegato? Forse mi sto solo lamentando del supporto adeguato per i delegati in Java .. (in C # potrebbe usare solo un'azione generica < >)