Development/Libraries/Perl

perl-Class-Data-Inheritable: Inheritable, overridable class data

IInfo.png projhp.png wikart.png
(auf gut Glück) (meist engl.) (falls vorhanden)

Zusammenfassung (meist engl.)
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 analogous 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'); Authors: -------- Original code by Damian Conway. Maintained by Michael G Schwern until September 2005. Now maintained by Tony Bowden.
Installieren: perl-Class-Data-Inheritable.jpg Status: perl-Class-Data-Inheritable.png Umfang:11 KiB