Qual é o oposto de inicializar (ou init)? [fechadas]

79

O termo será usado como um nome de método. O método é chamado quando uma parte da interface do usuário é oculta (ou removida) e é usada para redefinir valores como padrão e descartar objetos que não serão mais usados.

Nomes possíveis são: liberar, remover, eliminar, limpar, etc.

Qual você acha que é o mais adequado?

    
por Gabriel Diaconescu 30.08.2012 / 16:05
fonte

10 respostas

66

Eu uso:

  • initialize ()
  • terminate ()

Acho mais apropriado:

  • é difícil não ver em código, porque são palavras longas (não uso init)
  • está correto em inglês (AFAIK)
  • na minha cabeça, terminar evita ambigüidade. Ele não corresponde a begin (que corresponde a end), start (que corresponde a stop), create (que corresponde a destroy), setup (que corresponde a unset), load (que corresponde a unload) etc.

Algumas pessoas podem achar que é uma questão de gosto.

    
por 30.08.2012 / 18:02
fonte
23

Eu normalmente escolho Finalizar, Destruir ou Terminar dependendo de qual é a função dos objetos.

Para o caso que você descreve, Finalize é o que eu usaria com base no meu esquema.

    
por 30.08.2012 / 16:23
fonte
12

Eu gosto de release para um método que descarta objetos e outros recursos (por exemplo, como preparação para destruição). Eu escolheria reset para um método que redefina os valores para o padrão.

Se o estado "padrão" não exigir recursos, o reset poderá chamar release para executar essa parte de suas operações.

    
por 31.08.2012 / 00:23
fonte
5

close()

Ninguém propôs fechar () ainda. O Java 7 tem um novo recurso "tente com recursos". Uma classe que é limpa automaticamente tem que implementar java.lang.AutoCloseable, que possui um único método close (). shutdown () ou cleanup () podem ser bons também.

Não é finalize()

finalize () significa algo específico para o garbage collector em Java, e o modo como funciona é um pouco estranho. Eu ficaria longe de finalizar () a menos que você queira exatamente o que o Java faz com finalize ().

    
por 30.08.2012 / 16:34
fonte
4

Eu gosto bastante de 'destruir'. Não poderia ser mais claro a menos que você esteja escrevendo um videogame ou algo assim.

    
por 30.08.2012 / 16:13
fonte
3

Meu primeiro pensamento foi desmontar, mas isso é usado em muitos frameworks de testes. Finalize e descarte problemas semelhantes. Redefinir ou limpar ambos parecem boas escolhas. Reinicializar deixa claro que volta para o estado inicializado, o que seria bom se o estado para o qual você volta é o estado inicial.

Apenas certifique-se de que seu termo não esteja sobrecarregado em seu contexto atual.

    
por 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 parece ser um bom termo se você estiver redefinindo o objeto para os padrões. reinitialize também pode ser apropriado se o uso desse objeto for semelhante ao que initialize faz. Parece que esse método irá descartar outros objetos, não aquele que está recebendo a mensagem, caso em que qualquer um dos itens acima deve estar bem. Se você realmente estiver fazendo o oposto de init e preparando o receptor para ser destruído, dispose seria uma boa escolha.

    
por 30.08.2012 / 16:51
fonte
2

Eu diria que depende se a ação é opcional ou necessária (sem vazamento de recursos) e se o idioma suporta construtores / destruidores. Para casos opcionais eu uso:

  • claro
  • redefinir
  • hide (no contexto da interface do usuário)

Em outros casos em que a ação oposta é necessária (em idiomas sem construtores / destrutores, ou quando o destrutor não libera o recurso), eu uso:

  • init - fini
  • inicializar - desinicializar
  • criar - destruir

No seu caso, acho que prefiro hide . Ele ainda pode liberar memória / recursos se quiser - o importante é que é opcional, ou seja, o destruidor cuidaria disso se você não o fizesse.

    
por 01.09.2012 / 02:48
fonte
1

link

Eu iria com finalizar. No entanto, acho que é um pouco dependente do caso de uso exato: por exemplo, Se você usá-lo principalmente para liberar recursos, fechar conexões, arquivos, em seguida, liberar seria mais significativo.

Se você está procurando uma noção para uso geral, ou padronizar, eu escolheria algo menos significativo, algo sem significado especial como lançamento, ou remover.

O conceito de init vs (whatever) é similar a (constructor vs destructor), ou em java finalize.

( Nota : Se a linguagem tem o conceito de construir e destruir objetos, é pouca ou nenhuma necessidade de usar o init ().)

    
por 30.08.2012 / 16:32
fonte
0

Se o objeto no qual o método está sendo chamado deixar de ser usado, eu usaria apenas o destruidor padrão. Isso não soa como o caso, então, ao invés de ficar muito genérico, um nome melhor é provavelmente algo como hide() se o próprio objeto está sendo escondido ou hideUserInterfacePart() se objetos compostos estão sendo escondidos.

    
por 30.08.2012 / 16:29
fonte