>> ZVUČNIK 1: Pretpostavimo sada da sam htjela dati nule sposobnost
kihati kao dobro.
Pa, moj prvi instinkt bi se, kao i prije, da bi
blok, to zovu kihanje.
Navedite da bih želio specificirati s brojem koliko puta
Scratch treba kihati.
Nakon toga kliknete OK.
Dopustite mi da se presele to više u desno dati sebi malo više prostora.
>> I onda neka mi opet ići na Ponovite, preskakanja zadano 10 s n.
Pusti me na recimo izjavi i reći ne "zdravo", ali
"Achoo" za jednu sekundu.
Zatim uzmite trenutak je predah.
I to je to.
>> Sada imam blok zvan kihanje, kao blok naziva kašalj.
Tako da sad ako želim Scratch kašljati i kihanje, ja jednostavno mogu odrediti
kihati u nastavku njegovog kašlja.
Tri puta, kažu.
Kliknite na zelenu zastavu, a ja sam trebao vidjeti doista, kašalj, kašalj, kašalj.
Slijedi achoo, achoo, achoo.
Moje najrealnije kiše do sada.
>> Sada primijetiti nešto što je loše o tom dizajnu.
Iako nisam Konačni duplikat bilo slagalice, ja
definitivno povući i pao prilično velik dio isti komada slagalice, dajući
jedna funkcija ikada tako nešto drugačije ime od druge, kihanja
u odnosu na kašalj.
Dakle, ovo je prilika za faktoring iz nekog zajedničkog koda.
Doista, primijetit jedina razlika između kašlja i kihanja je da je jedan
ima Scratch izreka "kašalj" od kojih je drugi govore "achoo."
>> Dakle, ne može se generalizirati to nekako koda na takav način da mi jednostavno
odrediti što je riječ želimo ispočetka ostati?
I ovisno o tom riječ, to će učinkovito se kašalj ili
to će biti kihanje.
Tako ćemo ići naprijed i učiniti.
Učinimo treću funkciju i pozvati ovaj ", kažu." i ja to želim
prihvatiti, a ne samo broj, ali ovaj put string, inače poznat kao
riječ ili izraz.
>> And we'll call this "word."
I koliko puta mi je činiti želim reći tu riječ?
Pa neka je odrediti broj, Ponovno ga zove n.
I samo da bi ovaj blok više čitati, neka mi ići naprijed i dodati
label pod nazivom "puta." Tako da kada pročitajte ovaj blok s lijeva na desno, to
doslovno kaže "kažu riječ n puta."
>> Sada ću ići naprijed i kliknite OK.
I sad neka mi implementirati ovaj blok, Ponovno pomoću ponavljanja bloka.
Navodeći da želim to ponoviti n puta.
Navodeći da želim reći za jednu sekundu nešto.
No, umjesto da se nešto tvrdo kodirana u ovu funkciju, neka je umjesto povuci
i ispustiti riječ koja je donesen u.
Idemo onda čekati za jednu sekundu.
Pa sad neka mi se vratiti i preciziranje implementacije kašlja i kihanja,
na takav način da se te dvije funkcije nazvati ovu treću funkciju, čime
umanjuje iznos od duple kod.
Tako ćemo doslovno baciti taj broj daleko.
Idemo baciti ovaj kod daleko.
I ovaj put, neka je jednostavno odrediti da kašalj treba provoditi
govoreći "kašalj" neki broj n puta.
>> A isto tako, možemo se vratiti i ponovno provesti kihanje, tako da se ona koristi
kažu s argumentom od "achoo" n puta.
Pa što smo to učinili?
Mi smo prepoznali kod koji je zajednički za obje naše kašalj i naš
kihanje funkcije, uzete ga van u Treći novi funkcija, te
prepisivati ​​kašalj i kihanje u takva Način na koji se poziva da
Treći i nova funkcija.
>> Sada smo apsolutno su napravili ovu cjelinu Program složeniji od njega
Stvarno treba biti.
Uostalom, na koncu, mi samo treba Scratch kašljati tri puta
i kihanje tri puta.
I mi to mogao učiniti s Samo nekoliko dijelova slagalice.
No, kao i naši programi dobili mnogo više komplicirano, a naši programi više
sofisticiran, ova tehnika faktoring iz zajedničkog koda, ili
hijerarhijska raspadaju svoj program u manjim funkcije, od kojih je svaki
pozvati druge funkcije, je vrlo uvjerljiv tehnika.
Jer to će osigurati da vaš kod, čak i kao što to dobiva složeniji, ostatke
lako ažurirati i vrlo čitljiva.
>> Doista, razmotrimo krajnji rezultat.
Kada se zelena zastava se klikne, kašalj tri puta, kihanje tri puta.
I to je to.
Naime, neka je učiniti upravo to.
Kliknite na zelenu zastavu te smo dobili jednu kašalj, kašalj, dva tri kašalj.
Slijedi, nadamo se, odjednom kihne, dvije kiše, a treći kihanje.
Nadam se da on dobiva bolje uskoro.