Hirvi (Perl)

Moose on Perl 5:n olio- alijärjestelmän laajennus. Lisää Perliin nykyaikaiset OOP-ominaisuudet. Moose sai inspiraationsa CLOS :sta , Perl 6 :sta ja monista muista kielistä [1] , kuten Smalltalk , Java , BETA , OCaml , Ruby ja muut [2] .

Ominaisuudet

Moosessa, kuten Perl 6 :ssa, olioohjattu ohjelmointi perustuu luokkien ja objektien lisäksi roolimekanismiin , joka on yksi moniperinnön vaihtoehdoista (jota kuitenkin myös tuetaan).

Luokkien attribuutit ( luokkaominaisuudet ) tukevat delegointia ja laiska alustus .

Roolit ovat ominaispiirteisiin perustuvia ja suorittavat saman roolin kuin mixin- luokat . Ne muistuttavat käyttöliittymiä , mutta toisin kuin ne, ne sisältävät oletusmenetelmien toteutuksia.

Moose-objektijärjestelmä ylläpitää pysyvää metamallia: sitä voidaan muokata ja laajentaa kirjoittamalla luokkia ja rooleja Mooseen itseensä. Moosea käyttävät monet CPAN - laajennukset, ja Moose-laajennusmoduuleja on useita [1] . Versiosta 5.8 alkaen Model-View-Controller- verkkokehys Catalyst perustuu Moose-objektijärjestelmään [3]

Esimerkki

Luokka Point(piste) ja sen alaluokka Point3D(3-ulotteinen piste) määritellään alla:

paketti ; _ käytä Hirvi ; käytä Karppi ; has 'x' => ( isa => 'Num' , on => 'rw' ); has 'y' => ( isa => 'Num' , on => 'rw' ); sub clear { oma $itse = shift ; $itse -> x ( 0 ); $itse -> y ( 0 ); } sub set_to { @_ == 3 tai croak "Huono argumenttien määrä" ; minun $itseni = muutos ; minun ( $x , $y ) = @_ ; $itse -> x ( $x ); $itse -> y ( $y ); } packagePoint3D ; _ käytä Hirvi ; käytä Karppi ; laajentaa "Piste" ; on 'z' => ( isa => 'Num' , on => 'rw' ); jälkeen 'clear' => sub { my $self = shift ; $itse -> z ( 0 ); }; sub set_to { @_ == 4 tai croak "Huono argumenttien määrä" ; minun $itseni = muutos ; minun ( $x , $y , $z ) = @_ ; $itse -> x ( $x ); $itse -> y ( $y ); $itse -> z ( $z ); }

Metodit ja Point3Dohitetaan luokassa , joista ensimmäinen ei kutsu emoluokan metodia, toinen kutsuu. set_to()clear()

Katso myös

  • Moo (Perl)

Muistiinpanot

  1. 12 Dave Rolsky . Perl 5.16 ja uudemmat , LWN.net  (21. maaliskuuta 2012). Arkistoitu alkuperäisestä 16. syyskuuta 2013. Haettu 21. elokuuta 2013.
  2. moose.iinteractive.com - Moosen virallinen verkkosivusto
  3. Diment and Trout, 2009 , Johdanto -> Catalyst and Perl, s. xxvi.

Kirjallisuus

  • Tom Christiansen, Larry Wall, Brian Foy ja Jon Orwant. Ch. 12.Esineet. -> Hirvi huoneessa // Ohjelmointi Perl: Verraton teho tekstinkäsittelyyn ja komentosarjaan. - O'Reilly Media , 2012. - P. 453-455. — 1130 s. - ISBN 0596004923 , 9780596004927.
  • kromaattinen. Objektit -> Hirvi // Modern Perl . - Onyx Neon Press, 2011, 7. joulukuuta. - 290 s. - ISBN 0977920178 , 978-0977920174.
  • Kieren Diment ja Matt S Trout yhdessä Eden Cardimin, Jay Kurin ja Jess Robinsonin kanssa. Luku 2 Katalyytin asetukset ja taustatiedot -> Katalyytin taustatiedot -> Olio-ohjelmointi Moosen kanssa // Katalyytin lopullinen opas. Laajennettavien, skaalautuvien ja ylläpidettävien Perl-pohjaisten verkkosovellusten kirjoittaminen. - Apress, 2009. - s. 28-44. — 362 s. - ISBN 978-1-4302-2365-8 .
  • kromaattinen. Aloittelijoille Johdatus olio-ohjelmointiin Perlillä . O'Reily (13. marraskuuta 2008). Haettu 21. elokuuta 2013. Arkistoitu alkuperäisestä 28. toukokuuta 2013.
  • Henry Van Styn. Hirvi . Linux Journal (23. tammikuuta 2012). Haettu 21. elokuuta 2013. Arkistoitu alkuperäisestä 22. syyskuuta 2013.
  • Randal Schwartz. Hirvi lentää (osa 1) . Linux Magazine (19. syyskuuta 2007). Haettu 21. elokuuta 2013. Arkistoitu alkuperäisestä 29. toukokuuta 2014. , Randal Schwartz. Hirvi lentää (osa 2) . Linux Magazine (23. syyskuuta 2007). Haettu 21. elokuuta 2013. Arkistoitu alkuperäisestä 4. heinäkuuta 2013.
  • brian d foy. Moosen käytön aloittaminen  // The Perl Review. - Heinäkuu 2010. - Numero. 5.3 . Arkistoitu alkuperäisestä 5. joulukuuta 2013.

Linkit