Qual è l'opposto di initialize (o init)? [chiuso]

79

Il termine sarà usato come nome del metodo. Il metodo viene chiamato quando una parte dell'interfaccia utente è nascosta (o rimossa) e viene utilizzata per ripristinare i valori predefiniti e disporre gli oggetti che non saranno più utilizzati.

I nomi possibili sono: release, remove, dispose, clear ecc.

Quale pensi sia il più appropriato?

    
posta Gabriel Diaconescu 30.08.2012 - 16:05
fonte

10 risposte

66

Io uso:

  • inizializzazione ()
  • terminate ()

Trovo più appropriato:

  • è difficile non vederlo in codice, perché sono entrambe parole lunghe (non uso init)
  • è corretto l'inglese (AFAIK)
  • nella mia testa, terminare evita l'ambiguità. Non corrisponde inizio (che corrisponde alla fine), start (che corrisponde alla fermata), create (che corrisponde a destroy), setup (che corrisponde a unset), load (che corrisponde allo scaricamento) ecc.

Alcune persone potrebbero trovarlo una questione di gusti però.

    
risposta data 30.08.2012 - 18:02
fonte
23

In genere vado con Finalize, Destroy o Terminate a seconda di quale sia la funzione dell'oggetto.

Per il caso che descrivi, Finalize è ciò che vorrei fare in base al mio schema.

    
risposta data 30.08.2012 - 16:23
fonte
12

Mi piace release per un metodo che dispone di oggetti e altre risorse (ad es. come preparazione per la distruzione). Vorrei scegliere reset per un metodo che ripristina i valori predefiniti.

Se lo stato "predefinito" non richiede alcuna risorsa, allora reset potrebbe essere in grado di chiamare release per eseguire quella parte delle sue operazioni.

    
risposta data 31.08.2012 - 00:23
fonte
5

close()

Nessuno ha proposto close () ancora. Java 7 ha una nuova funzione "prova con risorse". Una classe che viene ripulita automaticamente deve implementare java.lang.AutoCloseable che ha un singolo metodo close (). shutdown () o cleanup () potrebbe essere buono.

Non finalize()

finalize () significa qualcosa di specifico per il garbage collector in Java, e il modo in cui funziona è un po 'strano. Vorrei stare lontano da finalize () a meno che tu non voglia esattamente ciò che Java fa con finalize ().

    
risposta data 30.08.2012 - 16:34
fonte
4

Mi piace molto 'distruggere'. Non potrebbe essere più chiaro a meno che tu non stia scrivendo un videogioco o qualcosa del genere.

    
risposta data 30.08.2012 - 16:13
fonte
3

Il mio primo pensiero è stato abbattuto, ma è usato in molti framework di test. Finalizzare e smaltire hanno problemi simili. Ripristina o pulisci entrambi sembrano buone scelte. Reinizializza rende chiaro che ritorna allo stato inizializzato, il che sarebbe positivo se lo stato a cui torni è lo stato iniziale.

Assicurati che il tuo termine non sia sovraccarico nel tuo contesto attuale.

    
risposta data 30.08.2012 - 16:10
fonte
3

and it is used to reset values to default and dispose objects that will not be used any more.

reset sembra un buon termine se stai reimpostando l'oggetto sui valori predefiniti. reinitialize potrebbe anche essere appropriato se l'uso di questo oggetto è simile a ciò che fa initialize . Sembra che questo metodo disponga di oggetti altri , non di quello che sta ricevendo il messaggio, nel qual caso uno dei due dovrebbe andare bene. Se stai davvero facendo l'opposto di init e stai preparando il ricevitore a essere distrutto, dispose sarebbe una buona scelta.

    
risposta data 30.08.2012 - 16:51
fonte
2

Direi che dipende se l'azione è facoltativa o richiesta (senza perdite di risorse) e se il linguaggio supporta costruttori / distruttori. Per i casi facoltativi, utilizzo:

  • Cancella
  • ripristinare
  • nascondi (nel contesto dell'interfaccia utente)

In altri casi in cui è richiesta l'azione opposta (in lingue senza costruttori / distruttori, o quando il distruttore non rilascia la risorsa), io uso:

  • init - fini
  • initialize - deinitialize
  • crea - elimina

Nel tuo caso, penso che preferirei hide . Può ancora rilasciare memoria / risorse, se lo desidera, l'importante è che sia facoltativo, cioè che il distruttore si prenderà cura di esso se non lo facessi.

    
risposta data 01.09.2012 - 02:48
fonte
1

link

Vorrei andare con finalizzare. Comunque penso che sia un po 'dipendente dal caso d'uso esatto: ad es. Se lo si utilizza principalmente per rilasciare risorse, chiudere le connessioni, i file e quindi rilasciare sarebbero più significativi.

Se stai cercando una nozione per uso generale o standardizzazione, sceglierei qualcosa di meno significativo, qualcosa senza significato speciale come release o remove.

Il concetto di init vs (qualunque sia) è simile a (costruttore vs distruttore), o in java finalize.

( Nota : se il linguaggio ha il concetto di costruire e distruggere oggetti, la sua minima o nessuna necessità di usare init ()).

    
risposta data 30.08.2012 - 16:32
fonte
0

Se l'oggetto su cui viene chiamato il metodo cesserà di essere usato, vorrei semplicemente usare il distruttore standard. Tuttavia, questo non sembra il caso, quindi piuttosto che diventare troppo generici, un nome migliore è probabilmente qualcosa come hide() se l'oggetto stesso è nascosto o hideUserInterfacePart() se gli oggetti composti sono nascosti.

    
risposta data 30.08.2012 - 16:29
fonte

Leggi altre domande sui tag