Domanda

Ho visto alcuni sviluppatori mettere dichiarazioni di variabili di istanza alla fine delle lezioni, anche se le vedo per lo più posizionate in alto. Le uniche ragioni che mi vengono in mente per farlo sono le preferenze stilistiche o forse in qualche modo le rende più facili da lavorare in un IDE. C'è un motivo più legittimo per scegliere questo stile?

È stato utile?

Soluzione

A causa di " Programma su una 'interfaccia', non su una 'implementazione'. " (Gang of Four 1995: 18) ( http://en.wikipedia.org/wiki/ Design_Patterns # Introduction.2C_Chapter_1 ), alcune persone preferiscono dichiarare le variabili di istanza in fondo alla classe. la teoria è che l'utente di una classe è più interessato a ciò che può fare con la classe (metodi) rispetto a come viene fatto qualcosa (variabili). Posizionare i metodi in cima alla classe li espone prima all'utente quando guardano il codice.

Altri suggerimenti

Non esiste un particolare "buono" motivo per farlo in un modo o nell'altro. L'unica cosa che conta davvero è che tutti nello stesso progetto lo fanno allo stesso modo.

Tuttavia, posizionarli in alto è molto più comune nella mia esperienza, ed è la pratica raccomandata da Linee guida per lo stile Java , quindi è quello che preferirei.

Puoi applicare la tua convenzione prescelta con un formattatore di codice sorgente automatico come Jalopy , o ciò che viene fornito con Eclipse.

È principalmente (se non interamente) una preferenza personale. Mi piacciono in alto, ma non potrei davvero dare una ragione migliore per questo, quindi è il modo in cui sono abituato.

La maggior parte delle variabili di istanza sono private , quindi tendo a metterle in fondo perché dichiaro i membri in ordine di visibilità decrescente. Se li dichiarassi in ordine di crescente visibilità sarebbero al top, il che è anche ragionevole.

Quello che non mi piace è avere campi privati ??seguiti da campi pubblici seguiti da metodi privati. Se sto sviluppando una classe client, voglio tutte le parti pubbliche insieme (dato che è tutto ciò a cui sono interessato.)

Ho sempre razionalizzato il fatto che se si dispone di una variabile di livello di classe privata, allora è stata codificata una configurazione o si sta monitorando lo stato in un modo o nell'altro. Se stai monitorando lo stato, quindi 1) che dovrebbe essere reso evidente a tutti coloro che scriveranno il codice nel file dal momento in cui aprono il file e 2) il monitoraggio di molti stati è un odore enorme di codice e se i miei sviluppatori lo stanno facendo, quindi voglio che sia ovvio. Quindi mettendolo in cima, imho, rende più evidente il cattivo codice e serve da avvertimento per le persone future che modificheranno la classe.

Separa sicuramente i tuoi campi e membri pubblici / protetti rispetto a quelli privati, tuttavia, poiché le persone interessate a uno probabilmente non sono interessate all'altro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top