--- nfo/perl/libs/DesignPattern/Object.pm 2003/01/20 16:54:22 1.3 +++ nfo/perl/libs/DesignPattern/Object.pm 2003/02/09 16:24:46 1.5 @@ -1,7 +1,13 @@ ## --------------------------------------------------------------------------- -## $Id: Object.pm,v 1.3 2003/01/20 16:54:22 joko Exp $ +## $Id: Object.pm,v 1.5 2003/02/09 16:24:46 joko Exp $ ## --------------------------------------------------------------------------- ## $Log: Object.pm,v $ +## Revision 1.5 2003/02/09 16:24:46 joko +## + pseudo constructor mechanism by calling method 'constructor' on object instantiation +## +## Revision 1.4 2003/01/22 17:56:49 root +## + fix: just use the logger if it's available +## ## Revision 1.3 2003/01/20 16:54:22 joko ## + sub fromPackage: refactored from libp's 'getNewPerlObjFromPkgName' or s.th.l.th. ## @@ -26,7 +32,7 @@ # get logger instance -my $logger = Log::Dispatch::Config->instance; +my $logger = eval { Log::Dispatch::Config->instance; }; sub new { @@ -36,7 +42,7 @@ # use already blessed reference, if passed in - else use the very classname my $class = ref ($classname) || $classname; - $logger->debug( "$classname->new( ... )" . "\t[via " . __PACKAGE__ . "]" ); + $logger->debug( "$classname->new( ... )" . "\t[via " . __PACKAGE__ . "]" ) if $logger; # the base for our object - a plain perl hash, which .... my $self = {}; @@ -94,6 +100,7 @@ $self->{__classname} = $classname; $self->_init() if $self->can('_init'); + $self->constructor() if $self->can('constructor'); return $self; } @@ -148,6 +155,7 @@ # run boot-methods on object $object->_init() if $object->can('_init'); + $object->constructor() if $object->can('constructor'); return $object; }