Nei miei anni di programmazione ho spesso creato classi che raggruppano semplicemente alcune variabili con i loro setter e getter. Ho visto questi tipi di oggetti denominati oggetti valore, oggetti dominio o oggetti modello a seconda del contesto in cui vengono utilizzati. Il termine più adatto per l'uso generico sembra essere il Data Transfer Object (DTO). Questo descrive un POJO che contiene solo accessori e mutatori.Campi pubblici in un oggetto di trasferimento dati
Ho appena scritto uno di questi oggetti che contiene circa cinquanta campi utilizzati per impostare i parametri del tema su un grafico. Ora mi chiedo se invece di generare un centinaio di gettatori e setter dovrei semplicemente dichiarare questi campi come pubblici. Fare così va contro tutto ciò che i miei istinti di programmazione mi dicono ancora non posso negare che aumenterebbe notevolmente la leggibilità del mio codice e ridurrebbe la quantità di codice boilerplate nella classe.
L'unico motivo per cui posso vedere non per utilizzare i campi pubblici sarebbe se avessi bisogno di eseguire qualsiasi tipo di convalida su questi campi. Se supponiamo che la convalida del tipo sia sufficiente per i miei scopi, sta usando i campi pubblici in questo scenario una rottura accettabile dalla progettazione orientata agli oggetti? Un DTO pubblico funzionerà meglio con operazioni batch di grandi dimensioni?
Eventuali duplicati - http://stackoverflow.com/questions/1568091/why-use-getters-and-setters – sanbhat
getter e setter sono necessarie se cerchi di usare i framework 'DI' come' Spring' o qualcosa come 'jsp: useBean' etc !!! – NINCOMPOOP
@sanbhat: alcuni dei motivi indicati nella risposta accettata a questa domanda si applicano qui, ma non tutti. Lo scopo e il comportamento di un DTO sono diversi da quelli generici, quindi mi chiedevo se in questo caso si sarebbero applicate "regole" diverse. – Lilienthal