Class::ObjectTemplate.3pm

Langue: en

Autres versions - même langue

Version: 2002-02-25 (ubuntu - 24/10/10)

Section: 3 (Bibliothèques de fonctions)

NAME

Class::ObjectTemplate - Perl extension for an optimized template builder base class.

SYNOPSIS

   package Foo;
   use Class::ObjectTemplate;
   require Exporter;
   @ISA = qw(Class::ObjectTemplate Exporter);
 
   attributes('one', 'two', 'three');
 
   # initialize will be called by new()
   sub initialize {
     my $self = shift;
     $self->three(1) unless defined $self->three();
   }
 
   use Foo;
   $foo = Foo->new();
 
   # store 27 in the 'one' attribute
   $foo->one(27);
 
   # check the value in the 'two' attribute
   die "should be undefined" if defined $foo->two();
 
   # set using the utility method
   $foo->set_attribute('one',27);
 
   # check using the utility method
   $two = $foo->get_attribute('two');
 
   # set more than one attribute using the named parameter style
   $foo->set_attributes('one'=>27, 'two'=>42);
 
   # or using array references
   $foo->set_attributes(['one','two'],[27,42]);
 
   # get more than one attribute
   @list = $foo->get_attributes('one', 'two');
 
   # get a list of all attributes known by an object
   @attrs = $foo->get_attribute_names();
 
   # check that initialize() is called properly
   die "initialize didn't set three()" unless $foo->three();
 
 

DESCRIPTION

Class::ObjectTemplate is a utility class to assist in the building of other Object Oriented Perl classes.

It was described in detail in the O\'Reilly book, ``Advanced Perl Programming'' by Sriram Srinivasam.

EXPORT

attributes(@name_list)

This method creates a shared setter and getter methods for every name in the list. The method also creates the class constructor, "new()".

WARNING: This method must be invoked within the module for every class that inherits from Class::ObjectTemplate, even if that class defines no attributes. For a class defining no new attributes, it should invoke "attributes()" with no arguments.

AUTHOR

Original code by Sriram Srinivasam.

Fixes and CPAN module by Jason E. Stewart (jason@openinformatics.com)

SEE ALSO

http://www.oreilly.com/catalog/advperl/

perl(1).

Class::ObjectTemplate::DB