Perl – Factory Pattern

Pas de Bullshit : je suis une fabrique, tu me donnes des paramètres, je te donne de beaux objets associés.


#!/usr/bin/perl -w

package MyFactory;

    sub new {
        my $self          = shift;
        my $type          = shift;
        my $class         = "MyTest::$type";

        return $class->new(@_);
    }
1;

package MyTest::Repeat;

sub new {
    my $class    = shift;
    my $self     = {
        text     => shift,
        repeat   => shift,
    };
    return bless $self, $class;
}

sub display {
    my $self = shift;
    print ($self->{text} x $self->{repeat});
}
1;

package MyTest::Stamp;

    sub new {
        my $class    = shift;
        my $text = shift;
        return bless \$text, $class;
    }

    sub display {
        my $text     = shift;
        my $stamp    = localtime();
        print "$stamp $$text";
    }
1;

package main;
 use strict;

my $text_r = MyFactory->new("Repeat", "Hello\n", 3);
$text_r->display();
my $text_stamp = MyFactory->new("Stamp", "Bye-bye\n");
$text_stamp->display();

>./test.pl
Hello
Hello
Hello
Wed Jul 16 10:16:32 2008 Bye-bye

Autres articles susceptibles de vous intéresser :

Cet article a été publié dans App avec les mots-clefs : , , . Bookmarker le permalien. Laisser un commentaire ou faire un trackback : URL de trackback.

Laisser un commentaire

Votre e-mail ne sera jamais publié ni communiqué. Les champs obligatoires sont indiqués par *

*
*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>