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
Muistiinpanot
- ↑ 12 Dave Rolsky . Perl 5.16 ja uudemmat , LWN.net (21. maaliskuuta 2012). Arkistoitu alkuperäisestä 16. syyskuuta 2013. Haettu 21. elokuuta 2013.
- ↑ moose.iinteractive.com - Moosen virallinen verkkosivusto
- ↑ 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. (määrätön)
- Henry Van Styn. Hirvi . Linux Journal (23. tammikuuta 2012). Haettu 21. elokuuta 2013. Arkistoitu alkuperäisestä 22. syyskuuta 2013. (määrätön)
- Randal Schwartz. Hirvi lentää (osa 1) . Linux Magazine (19. syyskuuta 2007). Haettu 21. elokuuta 2013. Arkistoitu alkuperäisestä 29. toukokuuta 2014. (määrätön) , Randal Schwartz. Hirvi lentää (osa 2) . Linux Magazine (23. syyskuuta 2007). Haettu 21. elokuuta 2013. Arkistoitu alkuperäisestä 4. heinäkuuta 2013. (määrätön)
- brian d foy. Moosen käytön aloittaminen // The Perl Review. - Heinäkuu 2010. - Numero. 5.3 . Arkistoitu alkuperäisestä 5. joulukuuta 2013.
Linkit
Perl |
---|
Ihmiset |
- Larry Wall
- Randel Schwartz
- Damian Conway
- Allison Randel
- Audrey Tang
- Simon Cozens
- kromaattinen
- Adam Kennedy
- brian d foy
- Mark Jason Dominus
|
---|
Asiat |
|
---|
Kehykset |
|
---|
|