HÖGTALARE 1: Antag nu att jag ville att ge Scratch förmågan att nysa också. Tja, min första instinkt skulle vara, som tidigare, att göra en kvarter, kallar detta nysa. Ange att jag skulle vilja specificera med ett antal hur många gånger Scratch ska nysa. Därefter klicka på OK. Låt mig gå här över till höger för att ge mig själv lite mer utrymme. Och låt mig återigen går att upprepa, åsidosätta standard 10 med n. Låt mig gå till säg uttalande och säg inte "hej", men "Achoo" i en sekund. Ta sedan en stunds andrum. Och det är det. Nu har jag ett block som kallas nysning, såväl som ett block som kallas hosta. Så att nu om jag vill Scratch att hosta och nyser, kan jag helt enkelt ange en nysa under hans hosta. Tre gånger, säger. Klicka på den gröna flaggan, och jag borde se faktiskt, hosta, hosta, hosta. Följt av achoo, achoo, Achoo. Mina mest realistiska nyser hittills. Nu märker något som är dåligt om denna design. Även om jag inte rakt av dubbletter alla pusselbitar, jag definitivt dras och släppas ganska ungefär samma pusselbitar, vilket ger den ena funktionen en aldrig så lite annat namn än den andra, nysa kontra hosta. Så det här är en möjlighet för facto några vanliga kod. Faktum är att märka den enda skillnaden mellan hosta och nysa är att man har Scratch ordspråket "hosta", den andra av vilken säger "achoo." Så kunde vi inte på något sätt generalisera detta kod på ett sådant sätt att vi helt enkelt specificera vilka ord vi vill att grunden för att stanna? Och beroende på det ordet, kommer det effektivt vara en hosta eller det kommer att bli en nysning. Så låt oss gå vidare och göra det. Låt oss göra en tredje funktion och ringa den här, "säger." och jag vill att det ska acceptera, inte bara en siffra, men den här gången en sträng, annars känd som en ord eller en fras. Och vi kallar detta "ord." Och vad vill jag säga? Och hur många gånger måste jag vill säga ordet? Nåväl låt oss ange ett nummer, kalla det igen n. Och bara för att göra detta block mer läsbar, låt mig gå vidare och lägga till en etikett som heter "tider." Så att när du Läs detta block från vänster till höger, det bokstavligen säger "säger ordet n gånger." Låt mig gå vidare och klicka på OK. Och nu vill jag genomföra det här blocket, återigen med användning av en upprepningsblocket. Anger att jag vill ha den att upprepa n gånger. Anger att jag vill säga något för en sekund. Men snarare än något hårt kodad in i denna funktion, låt oss istället dra och släpp det ord som är gått i. Låt oss sedan vänta en sekund. Och nu ska vi gå tillbaka och förbättra min implementeringar av nysning och hosta, så att de kallar det här fungera turvis. Så låt oss kasta bort den här koden. Låt oss kasta bort den här koden. Låt oss gå till min egen blocket och dra in "säger". Och skriva in argumentet av "hosta" tre gånger. Och här nere ska vi dra in "säger," "Achoo" tre gånger. Så nu vill jag gå tillbaka och förbättra min implementeringar av hosta och nysa, på ett sådant sätt att dessa två funktioner kalla denna tredje funktion, och därigenom minimera mängden av duplicera kod. Så låt oss bokstavligen kasta denna kod bort. Låt oss kasta denna kod bort. Och den här gången, låt oss helt enkelt ange att hosta bör genomföras av säger "hosta" något antal n gånger. Och på samma sätt, kan vi gå tillbaka och åter genomföra nysning, så att den använder säga med ett argument av "achoo" n gånger. Så vad har vi gjort? Vi har erkänt den kod som var gemensam för både vår hosta och vår nysning funktioner faktoriseras ut den i en ny tredje funktionen, och sedan omskriven hosta och nysa i en sådan ett sätt som de kallar det tredje och ny funktion. Nu har vi absolut gjort det hela programmet mer komplicerat än det egentligen behöver vara. Trots allt, vid slutet av dagen, vi bara behöver Scratch att hosta tre gånger och nysning tre gånger. Och vi kunde ha gjort det med bara några pusselbitar. Men eftersom våra program får mycket mer komplicerat, och våra program mer sofistikerad, denna teknik för facto ut gemensam kod, eller hierarkisk sönderdelning programmet i mindre funktion, av vilka var ringa till andra funktioner och är en mycket övertygande teknik. Eftersom det kommer att se till att din kod, även som det blir mer komplexa, återstår lätt att uppdatera och också mycket läsvärd. I själva verket anser slutresultatet. När den gröna flaggan är tryckt, hosta tre gånger, nysning tre gånger. Och det är det. I själva verket, låt oss göra just det. Klicka på den gröna flaggan och vi får en hosta, två hosta, tre hosta. Följt av, hoppas vi, en gång nysa, två nysningar och en tredje nysning. Hoppas han blir bättre snart.