Poef

PERL-extensie die sterker typen, inkapseling en erfenis biedt
Download nu

Poef Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Benny Millares
  • Uitgever website:
  • http://search.cpan.org/~bmillares/

Poef Tags


Poef Beschrijving

Perl-extensie die sterker typen, inkapseling en erfenis levert POF is een PERL-module die pogingen om perl een meer formeel OO-implementatiekader te geven. Het verschaffen van een onderscheid tussen klasseigenschappen en methoden met drie toegangsniveaus (openbaar, beschermd en privé). Het beperkt ook de methode die in de klassen van kinderen wordt overschreven aan die eigenschappen of methoden die zijn gemarkeerd als "virtueel", in welk geval een kindklasse de methode kan overschrijven, maar alleen vanuit zijn eigen context. Wat de ouder betreft, gedraagt de opgeheven methode of onroerend goed zich nog steeds op de verwachte manier vanuit zijn perspectief. Houd het bovenstaande voorbeeld: alle kinderen van MyClass kunnen de methode "opinoutperperl6" opheffen zoals het is gemarkeerd met "virtueel": # in het subnummer Meningaboutperl6: methode public {my ($ obj) = @_; Keer terug "Kerel, het is helemaal buis !!"; } Als de openbare methode "RealPublicopinionaboutperl6" wordt genoemd, roept het op zijn beurt de "meningaboutperl6" -methode aangezien het in MyCLASS is gedefinieerd, omdat het perspectief van de ouders de methode nooit is gewijzigd. Ik geloof dat dit cruciaal gedrag is en het gaat samen met hoe de OO-principes zijn geïmplementeerd in andere populaire talen zoals Java, C # en C ++. Synopsis-pakket MyClass; Gebruik basis qw (poof); # Subnaam van de klasseigenschappen: Eigenschap Public {{'Type' => 'String', 'Standaard' => '', 'Regex' => QR / ^. {0,128} $ /,}} Sub Leeftijd: eigendom openbaar { {'Type' => 'integer', 'standaard' => 0, 'min' => 0, 'max' => 120,}} sub MarritedStatus: eigenschap privé {{'type' => 'string', ' Standaard '=>' single ',' Regex '=> QR / ^ (? Single | Getrouwd) $ /' iFilter '=> Sub {My $ Val = Shift; Retourneer LC $ VAL; }}} Sub-echtgenoot: Eigenschap Particulier {{'Type' => 'string', 'Standaard' => 'single', 'Regex' => qr / ^. {0,64} $ /, 'iFilter' => sub {mijn $ val = verschuiving; Retourneer LC $ VAL; }}} Sub-meningaboutperl6: Property Protected {{'Type' => 'string', 'Standaard' => 'Ik ben zo bezorgd, ik slaap niet' s nachts ' }} # Class Methods Sub MarritedStatus: methode openbaar {My ($ OBJ, $ SHEEPER) = @_; if ($ Surder EQ 'Nefarious Looking Stranger') {return 'non of your business'; } else {return $ obj -> {'marritedstatus'}}} subgrap: methode public {my ($ obj, $ new_spouse) = @_; $ obj -> {'partner'} = $ new_spuise; if ($ OBJ-> Perrors) {My $ Fouten = $ OBJ-> PgedErors; if (bestaat $ fouten -> {'PROCESS'}) {Die "-problemen, de Marrige is uitgeschakeld !! $ Fouten -> {'Echtgenoot'} "; Return 0;}} anders {$ obj -> {'Marritalstatus'} = 'getrouwd'; retour 1;}} Sub-meningaboutperl6: methode openbare virtuele {mijn ($ obj) = @_; terug" Oh, geweldig, Ik kijk er echt naar uit. Het is bijna hier :) ";} sub realpublicopinionaboutperl6: methode public {my ($ obj) = @_; retour $ obj-> opinieaboutperl6;} eisen: · Perl


Poef Gerelateerde software