Group :: Desenvolvimento/Perl
RPM: perl-Class-Data-Inheritable
Principal Changelog Spec Patches Sources Download Gear Bugs e FR Repocop
A versão atual: 0.02-alt1
Data da compilação: 6 junho 2005, 13:11 ( 986.5 weeks ago )
Tamanho:: 8059 b
Home page: http://www.cpan.org
Licença: Artistic
Sumário: Class-Data-Inheritable - Inheritable, overridable class data
Descrição:
Lista dos contribuidores Lista dos rpms provida por esta srpm:
ACL:
Data da compilação: 6 junho 2005, 13:11 ( 986.5 weeks ago )
Tamanho:: 8059 b
Home page: http://www.cpan.org
Licença: Artistic
Sumário: Class-Data-Inheritable - Inheritable, overridable class data
Descrição:
Class::Data::Inheritable is for creating accessor/mutators to class
data. That is, if you want to store something about your class as a
whole (instead of about a single object). This data is then inherited
by your subclasses and can be overriden.
For example:
Pere::Ubu->mk_classdata('Suitcase');
will generate the method Suitcase() in the class Pere::Ubu.
This new method can be used to get and set a piece of class data.
Pere::Ubu->Suitcase('Red');
$suitcase = Pere::Ubu->Suitcase;
The interesting part happens when a class inherits from Pere::Ubu:
package Raygun;
use base qw(Pere::Ubu);
$suitcase = Raygun->Suitcase;
Raygun inherits its Suitcase class data from Pere::Ubu.
Inheritance of class data works analgous to method inheritance. As
long as Raygun does not "override" its inherited class data (by using
Suitcase() to set a new value) it will continue to use whatever is set
in Pere::Ubu and inherit further changes:
Pere::Ubu->Suitcase('Blue');
However, should Raygun decide to set its own Suitcase() it has now
"overridden" Pere::Ubu and is on its own, just like if it had
overriden a method:
Raygun->Suitcase('Orange');
Now that Raygun has overridden Pere::Ubu futher changes by Pere::Ubu
no longer effect Raygun.
Pere::Ubu->Suitcase('Samsonite');
Mantenedor currente: Vitaly Lipatov data. That is, if you want to store something about your class as a
whole (instead of about a single object). This data is then inherited
by your subclasses and can be overriden.
For example:
Pere::Ubu->mk_classdata('Suitcase');
will generate the method Suitcase() in the class Pere::Ubu.
This new method can be used to get and set a piece of class data.
Pere::Ubu->Suitcase('Red');
$suitcase = Pere::Ubu->Suitcase;
The interesting part happens when a class inherits from Pere::Ubu:
package Raygun;
use base qw(Pere::Ubu);
$suitcase = Raygun->Suitcase;
Raygun inherits its Suitcase class data from Pere::Ubu.
Inheritance of class data works analgous to method inheritance. As
long as Raygun does not "override" its inherited class data (by using
Suitcase() to set a new value) it will continue to use whatever is set
in Pere::Ubu and inherit further changes:
Pere::Ubu->Suitcase('Blue');
However, should Raygun decide to set its own Suitcase() it has now
"overridden" Pere::Ubu and is on its own, just like if it had
overriden a method:
Raygun->Suitcase('Orange');
Now that Raygun has overridden Pere::Ubu futher changes by Pere::Ubu
no longer effect Raygun.
Pere::Ubu->Suitcase('Samsonite');
Lista dos contribuidores Lista dos rpms provida por esta srpm:
- perl-Class-Data-Inheritable