as3 101: hurtig tip – udnytte modifikatorer effektivt

, as3 101: hurtig tip – udnytte modifikatorer effektivt,,,,, andel,,,,,,,,,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss. denne post er en del af en serie kaldet as3 101.as3 101: fem grunde til at anvende montører og gettersas3 101: oop arv, montører & getters – basix, er der fire adgang modifikatorer, du kan vælge imellem, når de erklærer egenskaber og metoder: private, beskyttet,,, interne og offentlige.hvordan ved du, hvilken en?,,, før jeg besvarer det spørgsmål, lad os overveje, hvorfor vi vil genere med private (og beskyttede og interne) og ikke blot gøre det offentligt?tja, der er en lille ting, der kaldes, indkapsling, objekt orienterede programmering.den idé, der ligger bag, er "black box" udformning af klasser.du har ikke brug for at vide, hvordan den fungerer, for at det kan udføre sit arbejde.tag bilen, for eksempel.du behøver ikke ved noget om, hvordan en motor, der virker for dig at sidde i førersædet, og få bilen væk.det indre af bilen er indkapslet, og alt hvad du har brug for at blive bekendt med, hvad kan du gøre udefra (f.eks. arbejde, pedaler og drej på rattet, hvem bekymrer sig om, hvordan hjulene drejer, når du rammer den gas, så længe de ikke?., at motoren, offentlige, kan føre til problemer, hvis nogen, der ikke ved, hvad de laver, begynder at fjolle rundt, kunne vi måske have en ødelagt bil på vores hænder.med det i tankerne, lad os se... den første regel, det er mere en slags rettesnor, men du skal gøre egenskaber og de metoder, der er utilgængelige, som du kan.det er meget nemmere at ændre din mening senere og give udvidet adgang, end det er at gå i den anden retning. for eksempel forestille sig en klasse, der har en ", foo()" metode.hvis vi begynder at gøre, foo(), offentlige, så alle andre genstande kan kalde det.nu, vi beslutter, at, uanset årsagen, foo(), virkelig bør kun være under kontrollerede forhold, så vi vil gøre det privat.på det punkt, at "offentlige" til "privat", der kan være mange andre genstande, der allerede kalder, foo(),, fordi det er offentlige.når vi gør det, risikerer vi at bryde eksisterende kodeks. på den anden side, hvis der var en ", bar()" metode, som vi oprindelig skrev som private, og det eneste sted, hvor vi kan ringe til, bar(), er fra formål i sig selv.men siden da har vi besluttet, at bar(), virkelig er hjertet og sjælen i dette objekt, og vi kunne godt gøre det vidunderlige ved at gøre det offentligt.som vi gør den ændring, vi ved, at den eneste kode, der tidligere kunne kalde, bar(), fortsat vil være i stand til at kalde det efter ændringen.,, den anden regel, det er sandsynligvis mere standhaftig end den første, men igen, - - er der ingen regler derude, og der er heller ikke en håndhævelsesinstans det vil give dig bryder disse regler "." men det er en god idé at altid, gøre deres egenskaber, privat, eller på den mest beskyttede.aldrig, en offentlig ejendom. hvorfor?i en nøddeskal, fordi du ikke vil have en anden del af kode at ændre værdien af deres egenskaber, uden at du vidste det.er det ikke lidt paranoid "storebror er altid øje" tilgang til programlægning.men det handler om kontrol. det er ikke til at sige, at der ikke skal være offentlig adgang til værdi.i stedet, det er at sige, at vi bør kontrollere, offentlig adgang til værdi.overveje, hvad hvis deres formål var en snor, ejendom, der holdt en af tre mulige værdier, og formålet var lidt forskelligt, alt efter medlemsstat af denne ejendom?for eksempel: offentlige var stat: string; offentlig funktion foo(): ugyldig (skift (staten) {"a": spor ("foo - en"); pause, "b": spor ("foo - b"); bryde; sag c -: spor ("foo - c"); pauser), og efter det, myobject.state = "a". myobject. foo() //spor "foo - en" myobject.state = "b". myobject. foo() //spor "foo - b", hvis du nu har skrevet:, myobject.state = "" myobject. foo() //intet sker!så den stat, er aldrig sammen.sikker på, du kan sætte en standard til skifte erklæring, og selv udføre en, touppercase() på, medlemsstat, ejendom, når de vurderer det, men det ville være bedre at validere den værdi, som det er fastsat, at skrive en offentlig setter for ejendommen, giver dig mulighed for at undersøge den nye værdi og reagere i overensstemmelse hermed. private var _state: string; offentlig funktion, der er stat (værdi: string): ugyldig (hvis (værdi = = "a"



Previous:
Next Page: