Eu tenho três visualizações no meu programa (aplicativo iOS). Somente um deles está ativo ao mesmo tempo, então desativo a visibilidade para dois deles e alterno a visibilidade conforme o usuário pressiona os botões. As visualizações são inicializadas como visíveis, então desativei a visibilidade no código antes da exibição principal.
eu posso fazer
[view1 setAlpha:0.0f];
[view2 setAlpha:0.0f];
para duas das visualizações, mas agora a terceira (a que deve estar visível no início do aplicativo) não é abordada. Eu coloquei um
[view3 setAlpha:1.0f];
após os dois primeiros, porque acho que fica claro que existem de fato três visualizações, e não duas como se poderia pensar ao ver o código. Como outros programadores fazem isso? É pura preferência ou existem algumas convenções?
Se a chamada for muito pesada, é obviamente melhor não chamá-la quando isso não for necessário, mas eu estava pensando em coisas pequenas como o meu exemplo.
fonte
setVisibility
não faça nada se a visibilidade já for a solicitada, o que reduz a responsabilidade.Idéia alternativa: se seu objetivo é impedir a ocorrência de erros, porque as pessoas esquecem que há três visualizações e fazem algo com apenas duas delas que realmente deveriam fazer com todas elas, então crie uma função que torne impossível esquecer:
Agora você tem algo muito mais poderoso - o tempo de compilação garante que você não esqueceu . Se você esquecer um parâmetro, o compilador gritará com você. Isso é muito mais útil do que comentários ou códigos desnecessários, pois cria um protocolo nomeado estrito que reforça a propriedade com a qual você se importa.
No caso em
view3
que não é necessário alterar a visibilidade, você pode adicionar um comportamento em que a passagem de um valor especial como-1.0
ounil
ou algo nesse sentido significa "não alterar a visibilidade da visualização". Isso contorna o problema de definir visibilidades desnecessariamente.fonte
Eu acredito que adicionar um comentário explicando que a chamada é desnecessária (e por que) é a melhor.
(talvez o fato de uma chamada não ser necessária ou que você precise de um comentário sobre isso possa ser um cheiro de código)
fonte
Nesse caso específico, @Mattieu M. tem a solução certa.
No caso mais geral, onde não há transformação semelhante, você deve se perguntar: existe alguma chance de um futuro programador estragar isso?
A resposta é geralmente sim. O que significa que sim, você deve adicionar a chamada. Talvez alguma versão futura do framework comece com todas as visualizações desativadas, em vez de ativadas.
fonte