SIARADWR 1: Tybiwch nawr fy mod i eisiau i roi'r gallu Scratch i tisian hefyd. Wel, byddai fy greddfau cyntaf fod, fel o'r blaen, i wneud bloc, ffoniwch disian hwn. Nodwch y byddwn i'n hoffi i nodi gyda nifer sawl gwaith Dylai Scratch tisian. Wedi hynny glicio OK. Gadewch i mi symud yn ystod y i'r dde i roi rhywfaint mwy o le fy hun. Ac yna gadewch i mi unwaith eto yn mynd i Ailadrodd, gor-redol 'r ball 10 gyda n. Gadewch i mi fynd at y datganiad dweud ac yn dweud nad "helo", ond "Achoo" ar gyfer un eiliad. Yna cymerwch seibiant am funud. A dyna ni. Nawr Mae gen i bloc a elwir yn tisian, yn ogystal â bloc a elwir yn peswch. Felly, yn awr os wyf am Scratch i peswch ac disian, gallaf yn syml bennu tisian isod ei peswch. Tair gwaith, dyweder. Cliciwch ar y faner werdd, a ddylwn i gweld yn wir, peswch, peswch, peswch. Dilynir gan achoo, achoo, achoo. Fy disian mwyaf realistig hyd yn hyn. Nawr sylwi rhywbeth sy'n drwg am y cynllun hwn. Hyd yn oed er nad oeddwn dyblyg llwyr unrhyw ddarnau pos, yr wyf yn bendant llusgo a gollwng 'n bert yr un darnau pos, gan roi un swyddogaeth yn erioed mor ychydig enw gwahanol na'r llall, tisian yn erbyn peswch. Felly, mae hwn yn gyfle i ddefnyddio cwmni ffactoreiddio rhai cod cyffredin. Yn wir, yn sylwi ar y unig wahaniaeth rhwng peswch a disian yw bod un Mae Scratch dywediad "peswch," y eraill y mae dweud "achoo." Ni allai Felly rydym rywsut gyffredinoli hwn god yn y fath fodd fel yr ydym yn syml pennu pa gair yr ydym eisiau i Scratch i aros? Ac yn dibynnu ar y gair hwnnw, bydd yn fod yn peswch neu'n effeithiol bydd yn tisian. Felly, gadewch i ni fynd yn ei flaen ac yn gwneud hyn. Gadewch i ni wneud trydydd swyddogaeth a galw yr un yma, "yn dweud." ac yr wyf am iddo yn derbyn, nid dim ond nifer, ond y tro hwn llinyn, a elwir fel arall fel gair neu ymadrodd. A byddwn yn galw hyn yn "gair." A beth ydw i am ei ddweud? A sawl gwaith ydw i'n am ddweud gair hwn? Wel gadewch i ni yn pennu nifer, yn galw eto n. A dim ond er mwyn gwneud bloc hwn yn fwy ddarllenadwy, gadewch i mi fynd yn ei flaen ac yn ychwanegu label o'r enw "amser." Felly, pan fyddwch yn darllen bloc hwn o'r chwith i'r dde, mae'n yn dweud llythrennol "yn dweud amseroedd geiriau n." Nawr, gadewch i mi fynd yn ei flaen a chliciwch OK. Ac yn awr gadewch i mi gweithredu bloc hwn, eto gan ddefnyddio bloc ailadrodd. Pennu fy mod am i ailadrodd amseroedd n. Pennu yr wyf am ei ddweud rhywbeth am eiliad. Ond yn hytrach na rhywbeth codio galed yn y swyddogaeth hon, gadewch i ni yn lle hynny llusgo a gollwng y gair sy'n ei basio i mewn Gadewch i ni wedyn i ni aros am eiliad. Ac yn awr gadewch i ni fynd yn ôl a gwella fy gweithrediadau o tisian a pheswch, fel eu bod yn galw hyn yn weithredu yn eu tro. Felly, gadewch i ni daflu i ffwrdd y cod hwn. Gadewch i daflu i ffwrdd y cod hwn. Gadewch i ni fynd at fy bloc arfer a llusgo i mewn "dweud". A theipiwch yn y ddadl o "peswch" dair gwaith. Llusgo ac i lawr yma, gadewch i ni i mewn "yn dweud," "Achoo" dair gwaith. Felly nawr gadewch i mi fynd yn ôl a mireinio fy gweithrediadau o beswch a disian, yn y fath fodd bod dau swyddogaethau hynny ffoniwch y trydydd swyddogaeth, a thrwy hynny lleihau'r swm o dyblygu cod. Felly, gadewch i ni yn llythrennol taflu cod hwn i ffwrdd. Gadewch i ni taflu cod hwn i ffwrdd. A'r tro hwn, gadewch i ni dim ond nodi y Dylid peswch yn cael ei weithredu gan dweud "peswch" ryw nifer n o weithiau. Ac yn yr un modd, gallwn fynd yn ôl a ail-weithredu tisian fel ei fod yn defnyddio dweud gyda dadl o amser "achoo" n. Felly, beth ydyn ni wedi'i wneud? Rydym wedi cydnabod y cod a oedd yn gyffredin i'r ddau ein peswch ac mae ein tisian swyddogaethau, ffactor allan i trydydd swyddogaeth newydd, ac yna peswch ailysgrifennu a thisian yn y fath ffordd y maent yn galw bod trydydd a'r newydd swyddogaeth. Nawr rydym wedi gwneud yn gwbl cyfan hwn rhaglen fwy cymhleth nag y mae'n ei Mae angen i fod yn wirioneddol. Wedi'r cyfan, ar ddiwedd y dydd, yr ydym yn jyst angen Scratch i peswch dair gwaith ac yn tisian dair gwaith. A gallem fod wedi gwneud hynny gyda dim ond ychydig o ddarnau pos. Ond gan fod ein rhaglenni yn cael llawer mwy gymhleth, ac mae ein rhaglenni mwy soffistigedig, y dechneg hon o ffactoreiddio allan cod cyffredin, neu hierarchaidd pydru eich rhaglen i swyddogaeth llai, pob un ohonynt ffoniwch swyddogaethau eraill, yn iawn techneg cymhellol. Gan y bydd yn sicrhau bod eich cod, hyd yn oed gan ei fod yn mynd yn fwy cymhleth, olion hawdd i ddiweddaru a hefyd yn ddarllenadwy iawn. Yn wir, yn ystyried y canlyniad terfynol. Pan fydd y faner werdd ei glicio, peswch dair gwaith, tisian dair gwaith. A dyna ni. Yn wir, gadewch i ni wneud yn union hynny. Cliciwch ar y faner werdd ac rydym yn cael un peswch, dau peswch, tri peswch. Ac yna, rydym yn gobeithio, unwaith tisian, dau disian, a thrydydd disian. Gobeithio y bydd yn mynd yn well yn fuan.