Aggiornamento dell'oggetto valore nell'oggetto dominio. Assegna riferimento dall'esterno

0

Ho un oggetto oggetto dominio che contiene oggetto valore semplice 'Contatto'. Il contatto contiene solo getter senza setter.

public class User {
    private Contact contact;
// other methods and fields
}

public class Contact {
    private String phone;
    private String email;
    private String fax;
// and geters
}

Devo aggiornare il contatto dell'utente. Ho due modi per farlo, ma non so quale sia il migliore. L'oggetto dominio dovrebbe consentire di assegnare un riferimento dall'esterno? Ma d'altra parte la creazione di nuovi oggetti è forse un uso eccessivo.

public void updateContact(Contact newContact) {
    this.contact = newContact;
}

public void updateContact(Contact newContact) {
    this.contact = new Contact(newContact.getEmail(), newContact.getFax(), newContact.getPhone());
} 
    
posta Damian U 30.08.2017 - 09:51
fonte

1 risposta

4

Bene, non hai a che fare con un riferimento debole o debole, quindi non c'è ragione di supporre che l'istanza di newContact che è stata passata non possa essere mantenuta. Ancora più importante, non ci sono setter su Contact , il che implica strongmente che Contact sia immutabile. Questo non vuol dire che non può essere cambiato con la forza, anche se farlo sarebbe quasi certamente sbagliato.

Pertanto, se si presuppone che Contact sia immutabile, non si è in errore per farlo, e si dovrebbe essere sicuri assegnando semplicemente il proprio contatto a newContact che viene passato (il primo metodo updateContact ).

    
risposta data 30.08.2017 - 10:00
fonte

Leggi altre domande sui tag