LUIDSPREKER 1: Stel nu dat ik wilde Scratch de mogelijkheid te geven om ook te niezen. Nou, mijn eerste instinct zou zijn, zoals voorheen, om een blok, noemen dit niezen. Geef aan dat ik zou willen opgeven een getal hoe vaak Scratch moet niezen. Daarna op OK te klikken. Laat mij dit dan naar rechts te verplaatsen om mezelf wat meer ruimte. En dan laat ik weer naar Herhalen, overschrijven van de standaard 10 met n. Laat mij naar het woord verklaring en zeg niet "hallo", maar "Achoo" gedurende een seconde. Neem dan een moment rust. En dat is het. Nu heb ik een blok genaamd niezen, en een blok genoemd hoest. Zodat nu als ik wil Scratch hoesten en niezen, kan ik gewoon geef een niezen onder zijn hoest. Drie keer, zeg. Klik op de groene vlag, en ik zou moeten zie inderdaad, hoesten, hoesten, hoesten. Gevolgd door achoo, achoo, achoo. Mijn meest realistische niest-to-date. Let nu op iets dat slecht over dit ontwerp. Hoewel ik niet ronduit duplicaat elke puzzelstukjes, I zeker gesleept vrij vrijwel dezelfde puzzelstukjes, waardoor de ene functie een ooit zo iets andere naam dan de andere, niezen versus hoest. Dus dit is een kans voor factoring een aantal gemeenschappelijke code. Inderdaad, merkt het enige verschil tussen hoesten en niezen is dat een heeft Scratch gezegde "hoest," de andere van die zeggen "achoo." Dus konden we niet een of andere manier dit generaliseren code zodanig dat we gewoon specificeren welk woord we willen Scratch verblijven? En afhankelijk van dat woord, het zal een hoest of effectief zijn zal een nies zijn. Dus laten we verder gaan en doen dit. Laten we een derde functie en bel deze, "zeggen." en ik wil dat het aanvaarden geen nummer, maar nu een tekenreeks, ook wel bekend als woord of een zin. En we zullen dit "woord." Noemen En wat wil ik zeggen? En hoe vaak moet ik wil dit woord zeggen? Nou laten we geeft u een nummer, het opnieuw bellen n. En om dit blok meer maken leesbare, laat me ga je gang en voeg een label genaamd "tijden." Zodat wanneer u lees dit blok van links naar rechts, het letterlijk zegt "zeggen woord n ​​keer." Laat me nu ga je gang en klik op OK. En nu laat ik de uitvoering van dit blok, opnieuw met een herhaling blok. Specificeren dat ik wil aan n keer herhalen. Preciseren dat ik wil zeggen iets voor een seconde. Maar in plaats van iets te hard gecodeerd in deze functie, laten we in plaats slepen en laat het woord dat is is doorgegeven inch Laten we dan wachten op een seconde. En laten we nu terug gaan en het verbeteren van mijn implementaties van niezen en hoesten, zodat zij dit noemen functioneren in de beurt. Dus laten we weggooien deze code. Laten we het weggooien van deze code. Laten we naar mijn aangepaste blok en sleep in "zeggen". En typ in het argument van "hoesten" drie keer. En hier beneden laten slepen in "zeggen," "Achoo" drie keer. Dus laat me nu terug te gaan en te verfijnen mijn implementaties van hoesten en niezen, zodanig dat deze twee functies noemen dit derde functie, waardoor minimaliseren van de hoeveelheid van dubbele code. Dus laten we letterlijk gooien deze code weg. Werp deze code weg. En deze keer, laten we gewoon aangeven dat hoest moet worden uitgevoerd door zeggen "hoesten" een getal n keer. En evenzo kunnen we teruggaan en opnieuw te implementeren niezen zodat het gebruikt zeggen met een argument van "achoo 'n keer. Dus wat hebben we gedaan? We hebben de code die was erkend voor beide onze hoesten en onze niezen functies, verwerkt het uit in een nieuw derde functie, en vervolgens herschreven hoesten en niezen in dergelijke dat zij noemen derde en nieuwe functies. Nu hebben we geheel maakte dit hele programma ingewikkelder dan het echt moet zijn. Immers, aan het eind van de dag, we gewoon Scratch moeten drie keer hoesten en niezen drie keer. En we konden hebben gedaan met slechts een paar puzzelstukjes. Maar als onze programma's krijgen veel meer ingewikkeld, en onze programma's meer gesofisticeerde techniek factoring gemeenschappelijke code, of hiërarchische ontbindend je programma in kleinere functie elk noemen andere functies, is een zeer dwingende techniek. Want het zal ervoor zorgen dat uw code, zelfs als het meer complexe, overblijfselen krijgt eenvoudig te updaten en ook zeer leesbaar. Sterker nog, overweeg dan het eindresultaat. Wanneer de groene vlag wordt geklikt, hoest drie keer, drie keer niezen. En dat is het. In feite, we doen precies dat. Klik op de groene vlag en krijgen we een hoesten, hoesten twee, drie hoesten. Door gevolgd, hopen we, een keer niezen, twee niest, en een derde nies. Hoop dat hij beter wordt binnenkort.