Idiom
A questa scala, i motivi ricorrenti sono chiamati idiomi anziché schemi di progettazione. Gli schemi di progettazione funzionano su una scala più ampia rispetto a una singola riga di codice o un singolo ciclo.
Codice intelligente
Ciò si qualifica anche come anti-pattern code . Il codice intelligente non è consigliabile, perché sarà più difficile leggere per i tuoi compagni di squadra e per te stesso 6 mesi dopo.
Migliori alternative
Inizializzazione del ciclo, loop "propulsione", condizioni di uscita del ciclo sono separate.
int someValue;
int someTerminatingValue;
for (someValue = GetSomeValue(); // initialize the loop variable
someValue = GetSomeValue(); // move the loop onward
someValue != someTerminatingValue) // exit condition
{
// Do something interesting
}
Ma questo è ancora codice intelligente . McConnell chiama questo " un while
loop abusivamente stipato in un'intestazione di ciclo for
" (vedi Codice completo 2, p.374). propone anche un'alternativa migliore.
someValue = GetSomeValue(); // initialize the loop variable
while (someValue != someTerminatingValue) // exit condition
{
// Do something interesting
someValue = GetSomeValue(); // move the loop onward
}
Related:
( fonte )