Thread OOP Programmierstil (20 answers)
Opened by rosti at 2011-03-24 09:52

rosti
 2011-03-31 11:54
#147205 #147205
User since
2011-03-19
3506 Artikel
BenutzerIn
[Homepage]
user image
hi again;

es gibt eine Sache, die mir noch nicht ganz gut gefällt:

in main, bei einem POST
Code: (dl )
$u->insert($anz); # $u ist eine Instanz von Shop.pm


in Shop.pm wird die Methode insert() gerufen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
# meta-method insert/update
sub insert{
my $self = shift;
my $anz = shift or return;
my $url = $self->{URL};
return if defined $self->{COKNA}; # Cookie nicht angenommen

my $dbo = myBase::Warenkorb->new or do{
$self->{body} .= qq(<p>Kein Zugriff auf DB</p>);
return;
}; # exception {RaiseError}
$dbo->insert(sid => $self->{SID}, url => $url, anz => $anz);
}


Jetzt habe ich in main::insert eine Parameter zu übergeben, das ist ok und wird auch so bleiben. In Shop::insert jedoch werden dann an myBase::Warenkorb::insert gleich drei Parameter übergeben und wahrscheinlich werden noch Parameter hinzukommen, hmm.

Ich könnte in Klasse 'Warenkorb' das Erbe von Klasse 'Shop' antreten nd hätte dann in Shop::insert:

Code: (dl )
1
2
3
4
5
6
sub insert{
my $self = shift;
$self->{ANZ} = shift; # zugriff interna, ok
my $dbo = Shop::Warenkorb->new; # inherit from Shop
$dbo->insert; # keine Parameter
}


Würdet Ihr das auch so machen, Stil?

--Rolf

View full thread OOP Programmierstil