/[cvs]/nfo/perl/libs/DesignPattern/Object.pm
ViewVC logotype

Diff of /nfo/perl/libs/DesignPattern/Object.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by joko, Mon Jan 20 16:54:22 2003 UTC revision 1.5 by joko, Sun Feb 9 16:24:46 2003 UTC
# Line 2  Line 2 
2  ##  $Id$  ##  $Id$
3  ## ---------------------------------------------------------------------------  ## ---------------------------------------------------------------------------
4  ##  $Log$  ##  $Log$
5    ##  Revision 1.5  2003/02/09 16:24:46  joko
6    ##  + pseudo constructor mechanism by calling method 'constructor' on object instantiation
7    ##
8    ##  Revision 1.4  2003/01/22 17:56:49  root
9    ##  + fix: just use the logger if it's available
10    ##
11  ##  Revision 1.3  2003/01/20 16:54:22  joko  ##  Revision 1.3  2003/01/20 16:54:22  joko
12  ##  + sub fromPackage: refactored from libp's 'getNewPerlObjFromPkgName' or s.th.l.th.  ##  + sub fromPackage: refactored from libp's 'getNewPerlObjFromPkgName' or s.th.l.th.
13  ##  ##
# Line 26  use Data::Dumper; Line 32  use Data::Dumper;
32    
33    
34  # get logger instance  # get logger instance
35  my $logger = Log::Dispatch::Config->instance;  my $logger = eval { Log::Dispatch::Config->instance; };
36    
37  sub new {  sub new {
38        
# Line 36  sub new { Line 42  sub new {
42    # use already blessed reference, if passed in - else use the very classname    # use already blessed reference, if passed in - else use the very classname
43    my $class = ref ($classname) || $classname;    my $class = ref ($classname) || $classname;
44        
45    $logger->debug( "$classname->new( ... )" . "\t[via " . __PACKAGE__ . "]" );    $logger->debug( "$classname->new( ... )" . "\t[via " . __PACKAGE__ . "]" ) if $logger;
46        
47    # the base for our object - a plain perl hash, which ....    # the base for our object - a plain perl hash, which ....
48    my $self = {};    my $self = {};
# Line 94  sub new { Line 100  sub new {
100    $self->{__classname} = $classname;    $self->{__classname} = $classname;
101    
102    $self->_init() if $self->can('_init');    $self->_init() if $self->can('_init');
103      $self->constructor() if $self->can('constructor');
104    
105    return $self;    return $self;
106  }    }  
# Line 148  sub fromPackage { Line 155  sub fromPackage {
155    
156    # run boot-methods on object    # run boot-methods on object
157      $object->_init() if $object->can('_init');      $object->_init() if $object->can('_init');
158        $object->constructor() if $object->can('constructor');
159    
160    return $object;    return $object;
161  }  }

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.5

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed