Foi-me ensinado essa expressão e padrão na época. Claro, o nome vem de bombas antigas que precisavam ser enchidas com água antes que pudessem bombear água, mas quem se importa? Estamos falando de código aqui.
Alguns bons exemplos e uma explicação do que o padrão realiza são bem-vindos. Como esse padrão é considerado hoje?
Às vezes, a preparação pode obter um loop defeituoso funcionando, mas ao custo de DRY . Portanto, pode ser uma breve parada no caminho para um design melhor. Isso é considerado um anti-padrão? Existem alternativas?
design-patterns
anti-patterns
loops
candied_orange
fonte
fonte
Respostas:
Essa metáfora quase certamente se refere à prática de estabelecer a primeira verificação condicional em um
while
loop. Se você não fizer isso, o loop não funcionará. É um padrão bem estabelecido e não mudou desde que owhile
loop foi inventado. O requisito para definir a condição inicial em umwhile
loop não é um defeito.O iniciador pode ser uma instrução de leitura ou o que definir adequadamente a condição inicial. Definir a condição inicial usando uma instrução de leitura é chamado de "Leitura de preparação".
Em C #, as duas
Readline()
chamadas podem ser combinadas em uma única instrução dentro do condicional:fonte
A T(B A)
padrão de priming usual faz isso, mas duplica A. Alguma alternativa geral a esse padrão geral?return
.while
loop, mas uma vez que você encontrou a string na linha que acabou de ler, pode usar umbreak
ou outroreturn
.