Legge multippel arv til AS3 med egenskaper og Realaxy Editor

Adding multippel arv til AS3 med egenskaper og Realaxy Editor
Del
Del
3
Del

Dette Cyber ​​mandag Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av.

I dette innlegget vil du lære om et språk utvidelse kalt Traits
, en funksjon av en ny Beta av RASE, en smart og moderne IDE for Adobe Flash basert på JetBrains MPS. Trekk vil tillate deg å bruke multippel arv i prosjektene, slik at en klasse kan effektivt forlenge to andre klasser.


Prøven Prosjektet ble opprettet med Actionscript 3.0 med trekk språket forlengelse hjelp Realaxy Actionscript Editor (RASE). Hvis du ønsker å gjøre det på samme måte, kan RASE lastes ned her (hvis du er ny på RASE følger du nybegynner guide her)



Hvorfor bruke multippel arv?
< p> Actionscript er et moderne objektorientert språk. I øyeblikket, selve OOP defenition og tolke anta at multippel arv er en ondskapsfull praksis. Således, som i seg selv ikke tillater multippel arv, og bare ved hjelp av grensesnitt er et alternativ. Det er vel og bra, ingen grunn til å krangle.

Men noen ganger virker det uutholdelig. Det hender at på grunn av denne manglende funksjon vi gjøre vår kode for sofistikerte eller sannsynligvis rotete.

For eksempel har vi en klasse Creature, som allerede strekker Sprite. Vi ønsker å lære det hvordan man snakker. " En skikkelig OOP " pålegger oss å lage en komposisjon. Så vi trenger å:

Opprett en iSpeaker grensesnitt

Legg til en tale () metode for å iSpeaker

Implementere dette grensesnittet med en høyttaler klasse...

The Creature klasse skal være arvet fra iSpeaker.

Deretter legger en delegat til Creature klassen. Snakk metoden ville omdirigere kall speak () til representanten.

  • Vel, er det gjort.

    La oss forestille vi har multippel arv. Så gjør vi en høyttaler klasse, arve vår Creature klasse fra høyttaleren. Det er alt, folkens

    Så, tenk deg vår Creature bør være i stand til å gjøre mye ting. Å gå, til å bevege armer og ben, å spise, å smile, å gråte. Kanskje også til å fly. Du vet aldri hva slags krav kan bli en del av spec. Som et resultat, får vi hundrevis og tusenvis av linjer med en " skikkelig
    " OOP kode, som er så overflødig og ordrik, at det å forstå dens egentlige hensikten ville være vanskelig selv å forfatteren.

    Vi, dyktige blinklysene, forstår at situasjonen beskrevet er rent kunstig. Hvem ville lage en pakke med grensesnitt for alle aspekter av atferd? Selv om de ville være aktuelt ikke bare for Creature. Faktisk ville det virkelige koden ser annerledes ut, ikke så pen og learnedly, men nærmere den virkelige verden -. Det vil si, enklere

    Så det viser seg at de beste intensjoner ECMAScript-tallet (og senere Action tallet) designere til å lage en moderne og korrekt OOP språk imøtekomme dårlig for vårt daglige arbeid.

    Nok klaging! Vi har et verktøy for å fikse det. RASE. Realaxy Actionscript Editor. Denne løsningen er Egenskaper
    , en AS3 språk forlengelse.

    La oss gå videre til handling.

    Trinn 1

    Først oppretter et nytt prosjekt med testTraits modul holdige hovedklassen Creature

    Trinn 2

    Angi prosjektet detaljer som vist her, og klikk på Neste.

    Trinn 3

    Opprett en ny klasse heter Creature, i pakken com.example:

    Trinn 4

    Denne koden skal opprettes:

    Trinn 5

    Importer en trekk språk ved å trykke Ctrl + L plakater (eller Command + L
    ).

    Trinn 6

    Lag en Speak grensesnitt med et enkelt "snakke" metoden.

    Trinn 7

    Den nedre delen av vinduet har to kategorier, "Interface" og "Trait".

    Velg "Trait" -kategorien (farget med grått) og klikk på den tomme redaktører feltet. Det vises en dialogboks, og tilbyr oss å lage en ny egenskap.

    Trinn 8

    Etter "OK" en standard implementering er skapt av redaktør. Legg merke til hvordan dette er nå egenskap Snakk heller enn grensesnittet Speak:

    Trinn 9

    Legg en kropp til "snakke" metoden: "Hello" bare spore til konsollen.

    Trinn 10

    I Creature klassen legge til en "Speak" grensesnitt til "redskap".

    Trinn 11

    Redaktøren lagt en " i " til høyre for grensesnittet navn. Det betyr at grensesnittet har en standard implementering -.. Den har trekk atferd

    Trinn 12

    RASE gjenkjenner slik oppførsel og ikke fremheve noen feil når metoder er lagt til klassen Anmeldelser

    Det er det! Vår Creature kan snakke nå! Legg en samtale av metode speak () til en klasse konstruktør for å bevise det.

    Step 13

    Rediger run-konfigurasjon

    Trinn 14

    Du vil se denne dialogen.

    Trinn 15

    Trykk på "+" knappen for å legge til en ny konfigurasjon, og velg Action

    Trinn 16

    Angi detaljene som vist her.

    (Dette Slik kan vi være sikker på at vi får se sporingen.)

    Trinn 17

    Kjør kompilert SWF. A " Hei " Meldingen vises i konsollen

    Her er hva vi får.


      Code of grensesnitt og implementering er bundet opp med navigasjonsverktøy og bokmerker i editor.

      Kode er nå godt organisert. Hver implementeringen har et navn: grensesnittnavnet + "Impl"

      Boost av brukervennlighet.. I en klasse som bruker denne atferden, vi bare legge vår grensesnitt til implementert listen.
    1. Holde epler og appelsiner skille. Code of Creature klassen er ikke "strødd" med overdreven enheter. Vi har nettopp bestilt Creature å snakke.

      Som et resultat, har vi atferd som er virkelig liker multippel arv, men står på "riktig og korrekt" OOP anbefalinger.

      Trinn 18

      La oss se hvordan det fungerer, ved å se på koden vi faktisk genererer

      Klikk på "Bygg- > Generer (foreldet) - > Generer Tekst fra dagens modell".. Den nylig genererte koden av Creature klasse vises i Output-vinduet.

      Koden demonstrert over implementerer en klassisk komposisjon. Den egenskap språk forlengelse skjuler redundante enheter og organiserer relasjoner mellom kode gjenstander. Faktisk, driver vi en "ren" OOP kode.

      Nå ser vi en ny rask og enkel måte å lære våre Creature hvordan du gjør alt. Det viktigste er oppførselen: vi bruke de samme grunnregler til en annen klasser

      La oss gjøre det på 5 minutter

      Trinn 19

      Legg til noen nye trekk -.. ett for hvert lem - akkurat som vi gjorde før:

      Trinn 20

      The Creature klassen får nå en rekke nye ferdigheter, men koden forblir lett lesbar og rent. Uten Traits språket utvidelsen ville det være helt annerledes:

      Det er på tide å si farvel. Jeg venter på dine spørsmål, forslag og kommentarer.

      Husk, hvis RASE er nytt for deg, kan du lese «Beginners Guide". Anmeldelser