Quel est le contraire de initialize (ou init)? [fermé]


94

Le terme sera utilisé comme nom de méthode. La méthode est appelée lorsqu'une partie de l'interface utilisateur est masquée (ou supprimée). Elle permet de rétablir les valeurs par défaut et d'éliminer les objets qui ne seront plus utilisés.

Les noms possibles sont: relâcher, supprimer, éliminer, effacer, etc.

Selon vous, lequel est le plus approprié?


1
Destruct? (besoin de plus de lettres)
Deiwin

32
Vous ne pouvez pas voir en quoi cela n’est pas constructif, un examen rapide des réponses ci-dessous montre que de nombreux développeurs n’ont pas tout à fait l’antonyme. Les noms de méthode IMO sont très importants et "initialize" n'a pas d'antonyme clair, mais est un terme commun et utile.
earcam

2
Malheureusement, je ne peux plus ajouter de réponse puisque la question a été clôturée (Comme Earcam l'a dit: en quoi cela n'est-il pas constructif?), Je vais donc ajouter ma réponse ici. Le formulaire court et convivial est le suivant: À utiliser Initializeuniquement si vous n'avez pas besoin d'un antonyme! Si vous en avez besoin, sélectionnez un autre verbe (la plupart du temps, il existe une alternative plus descriptive). Pour référence ultérieure, je fournis ma liste d'antonymes aux programmeurs de GitHub.
Max Truxa

3
J'ai trouvé les réponses à cette question très utiles lorsque j'avais exactement la même question. Il n'aurait pas dû être fermé.
Ian Goldby

3
Je suis d'accord ... fermer cette question n'est pas du tout utile.
harald

Réponses:


80

J'utilise :

  • initialiser()
  • mettre fin()

Je trouve le plus approprié:

  • c'est difficile de ne pas le voir dans le code, parce que ce sont deux mots longs (je n'utilise pas init)
  • c'est correct anglais (autant que je sache)
  • dans ma tête, terminer évite les ambiguïtés. Il ne correspond pas à commencer (qui correspond à fin), commencer (qui correspond à arrêter), créer (qui correspond à détruire), configuration (qui correspond à non défini), charger (qui correspond à décharger), etc.

Certaines personnes pourraient cependant trouver que c'est une question de goût.


6
+1 pour terminate(). Je pense que c'est généralement sans ambiguïté et probablement raisonnablement applicable à travers les cas d'utilisation.
Ben Hocking

9
Je suis tout à fait d’accord avec «terminer», toutes les autres suggestions concernent des mots avec des antonymes exacts et bien connus; détruire (create), tearDown (setUp), fermer (ouvrir), libérer (acquérir), etc. Etonnant de voir combien de développeurs ne le voient pas.
earcam

Défenestrate C'est ce que je fais avec des objets quand j'en ai fini. (Mais Terminate serait mon deuxième choix.)
Nicki

3
@ Nicki semble cher d'avoir à réinstaller des fenêtres à chaque destruction d'objet ...
Klaim

Comme Earcam l'a souligné: ce n'est set up(ce qui correspond tear down) pas setup(il n'y a pas de verbe de ce type dans la langue anglaise).
Max Truxa

25

Je vais généralement avec Finalize, Destroy ou Terminate en fonction de la fonction des objets.

Dans le cas que vous décrivez, Finalize est ce que je choisirais en fonction de mon schéma.


Malheureusement, "Finalize" peut être soit un synonyme, soit un antonyme de "Initialize". Je pense donc que ce serait un mauvais choix en général. 'Destroy' et 'Terminate' sont cependant des prétendants. Voir mw.com/dictionary/finalize pour une définition de «à mettre en forme finale ou finalisée». Je l'ai même vu utilisé de cette façon dans le code. Par exemple, la finalisation d'un objet est la dernière étape de son initialisation. En revanche, la classe Object de Java a une finalize()méthode n'indiquant plus de références à l'objet.
Ben Hocking

@BenHocking Je pense que vous prenez le "mettre en forme finale ou terminée" dans le mauvais sens. Pour moi, cela signifie que vous avez terminé avec l'objet et qu'il est temps de nettoyer / réinitialiser toutes les propriétés. C'est ce que OP dit qu'il veut faire. Donc, je pense que cette définition prouve mon cas.
Brian Dishaw

En outre, des commentaires sur pourquoi le downvote? (Je suppose que ce n'était pas @BenHocking puisqu'il n'a pas indiqué qu'il était le
votant négatif

a) Vous avez raison, je n'ai pas voté à la baisse. Votre suggestion est raisonnable et je pense que cette discussion est utile. b) J'ai vu finalize () utilisé dans le sens que j'ai indiqué. Par exemple, dans une classe calculant la triangularisation de Delauney, une fois tous les points ajoutés, finalize () a été appelée pour effectuer des calculs supplémentaires avant que les résultats ne puissent être utilisés. Dans ce cas, il était indiqué que l'objet n'était plus ouvert pour modification, mais qu'il était encore disponible, c'est-à-dire pour obtenir les résultats de la triangularisation.
Ben Hocking

14

J'aime releaseune méthode qui dispose d'objets et d'autres ressources (par exemple, comme préparation à la destruction). Je choisirais resetune méthode qui réinitialise les valeurs par défaut.

Si l'état "par défaut" ne nécessite aucune ressource, il resetest alors possible d'appeler releasepour effectuer cette partie de ses opérations.


6

close()

Personne n'a encore proposé close (). Java 7 a une nouvelle fonctionnalité "essayer avec des ressources". Une classe qui est nettoyée automatiquement doit implémenter java.lang.AutoCloseable qui possède une seule méthode close (). shutdown () ou cleanup () pourraient également être utiles.

ne pas finalize()

finalize () signifie quelque chose de spécifique au ramasse-miettes en Java, et son fonctionnement est un peu bizarre. Je resterais loin de finalize () sauf si vous voulez exactement ce que Java fait avec finalize ().


2
Vous faites valoir un point valable à propos de finalize () en Java ... mais le PO n’a indiqué nulle part que j’ai vu que la question traitait spécifiquement de Java, et pas de tout autre langage OO avec des "noms de méthodes" (par exemple, C ++).
EliSko

En C #, Finalizeest utilisé pour détruire des instances de classes.
Olivier Jacot-Descombes

4

J'aime bien "détruire". Ne pourrait pas être plus clair, sauf si vous écrivez un jeu vidéo ou quelque chose.


4
Pour moi, "détruire" est associé à "créer".
EliSko

4

Je dirais que cela dépend si l'action est facultative ou requise (sans fuite de ressources) et si le langage prend en charge les constructeurs / destructeurs. Pour les cas optionnels j'utilise:

  • clair
  • réinitialiser
  • masquer (dans le contexte de l'interface utilisateur)

Dans les autres cas où l'action inverse est requise (dans des langages sans constructeurs / destructeurs, ou lorsque le destructeur ne libère pas la ressource), j'utilise:

  • init - fini
  • initialiser - désinitialiser
  • créer - détruire

Dans votre cas, je pense que je préférerais hide. Il peut toujours libérer de la mémoire / des ressources s'il le souhaite - l'important est que cela soit facultatif, c'est-à-dire que le destructeur s'en chargerait si vous ne le faisiez pas.


3

Ma première pensée était de démolir, mais cela est utilisé dans de nombreux frameworks de test. Finaliser et disposer ont des problèmes similaires. Réinitialiser ou nettoyer tous les deux semblent être de bons choix. Réinitialiser indique clairement qu'il revient à l'état initial, ce qui serait bien si l'état auquel vous revenez est l'état initial.

Assurez-vous simplement que votre terme n'est pas surchargé dans votre contexte actuel.


Je ne vois pas en quoi c'est un problème en soi. Accordé Finalizeet Disposesont en code .NET. À part cela, je ne vois pas de problème à réutiliser des noms établis.
Konrad Rudolph

1
@KonradRudolph Réutiliser un nom établi, c'est bien, SI les concepts s'alignent très bien. Aucun des termes que j'ai énumérés ne correspond parfaitement à ce que je comprends qu'il décrit. Donc, ce serait plus déroutant puisque vous verriez le terme penser, je sais ce que ça fait et je me trompe.
Signer

3

et il est utilisé pour réinitialiser les valeurs par défaut et éliminer les objets qui ne seront plus utilisés.

resetsemble être un bon terme si vous réinitialisez l’objet aux valeurs par défaut. reinitializepourrait également être approprié si l’utilisation de cet objet est similaire à ce que initializefait. Il semble que cette méthode supprime d’ autres objets, et non celui qui reçoit le message, auquel cas l’une des réponses ci-dessus devrait suffire. Si vous faites vraiment le contraire initet que vous préparez le récepteur à être détruit, ce disposeserait un bon choix.


1

http://www.wordhippo.com/what-is/the-opposite-of/initialize.html

Je voudrais aller avec finaliser. Cependant, je pense que le cas d'utilisation exact dépend un peu: par exemple, si vous l'utilisez principalement pour libérer des ressources, fermez des connexions, libérez des fichiers puis libérez-les.

Si vous recherchez une notion d'usage général ou normalisée, je choisirais une notion moins significative, quelque chose qui n'a pas de signification particulière, telle que relâcher ou supprimer.

Le concept init vs (quel que soit) est similaire à (constructeur vs destructeur), ou en java finalize.

( Remarque : si le langage comporte les objets de construction et de destruction de concept, il n’a que peu ou pas besoin d’init ().)


FYI: finalizeest réservé en Java.
Basil Bourque

0

Si l'objet sur lequel la méthode est appelée cessera d'être utilisé, je voudrais simplement utiliser le destructeur standard. Cela ne semble pas être le cas, cependant, plutôt que de devenir trop générique, un meilleur nom correspond probablement à quelque chose comme hide()si l'objet lui-même était masqué ou hideUserInterfacePart()si les objets composés étaient masqués.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.