Dovrebbe essere creato un nuovo tipo anche se avvolge solo un campo?

3

Dire che ho un'interfaccia Species definita come

public interface Species {

    String getId();

    String getDescription();
}

La domanda è semplicemente questa: dovrei creare classi diverse per rappresentare questi due campi, anche se non aggiunge ulteriore chiarezza al codice? Ad esempio

public interface SpeciesIdentifier {

    String getValue();
}

public interface SpeciesDescription {

    String getValue();
}

public interface Species {

    SpeciesIdentifier getId();

    SpeciesDescription getDescription();
}

L'uso principale della classe Species è come un DTO.

    
posta Zymus 27.08.2015 - 06:39
fonte

1 risposta

2

La creazione di interfacce per valori singoli può avere senso se si desidera creare un'API molto solida, che dovrebbe durare anche se i requisiti cambiano, o se non si è sicuri di come verranno implementati i valori (id sarà una stringa o int? La descrizione sarà semplice String, o un oggetto con dati più strutturati, come gruppo, nota testuale, commenti).

In generale, è meglio mantenere le cose semplici se non prevedi molte modifiche o puoi permetterti di cambiare anche tutti i client.

Attenzione che se passi i valori tra più moduli o anche tramite invocazione remota, non solo le interfacce devono essere in classpath su entrambi i lati, ma anche le loro implementazioni.

    
risposta data 27.08.2015 - 14:15
fonte

Leggi altre domande sui tag