Devo creare un diagramma di classe UML dal seguente codice di esempio (Perl). Non penso che il modello di fabbrica standard corrisponda al mio caso o che non capisco correttamente. Non ho AbstractFactory
e ConcreteFactory
ma un singolo Factory
.
Che aspetto ha questo esempio nel diagramma delle classi UML?
Modifica : questo è solo un esempio molto piatto e semplice. La vera applicazione ha molti "Tipi" con flussi di lavoro totalmente diversi. Il diagramma di classe serve per ottenere una panoramica sulla struttura del foro. Non proprio per il flusso di lavoro interno come fanno i diagrammi di sequenza.
package Module::Factory;
sub new { bless { type => $_[1] }, $_[0]; }
sub create {
my( $self, $name ) = @_;
my $object = "Module::Types::$self->{type}"->new( $name );
return( $object );
}
package Module::Types::Test1;
sub new { bless { name => $_[1] }, $_[0]; }
sub test {
my( $self ) = @_;
say "Hello, $self->{name}.";
return( $self );
}
package Module::Types::Test2;
sub new { bless { name => $_[1] }, $_[0]; }
sub test {
my( $self ) = @_;
say "Bye, $self->{name}.";
return( $self );
}
# even more Module::Types::TestN packages...
package main;
foreach my $type ( qw( Test1 Test2 ) ) {
my $factory = Module::Factory->new( $type );
foreach my $name ( qw( World John Peter ) ) {
my $object = $factory->create( $name );
$object->test();
}
}