|
|||||||||||||||||||||||||||
Jan Eggert Kofoed <sslug@sslug> writes:
Jeg ville nok give mulighed for at initialiserer objektet i din
new-funktion.
> sub new
> {
> my $self = shift;
Bemærk at $self bliver sat til navnet på klassen. Kald den $class i
stedet.
> my @_Groups;
> my $r_Album =
Rent stilistisk ville jeg nok kalde $r_Album for $this eller
$self. Det er selve objektet du opretter her som du i alle de andre
metoder kalder $this eller $self.
Hvorvidt man bruger $this eller $self er underordnet, man bør bare
være konsistent.
> {
> "_name" => undef,
> "_id" => undef,
> "_dbname" => undef,
> "_released" => undef,
> "_albumartist" => undef,
> "_groups" => sslug@sslug
> };
Jeg ville nok skrive 'groups => []'. Der er ikke nogen grund til at
introducerer navnet @_Groups som du alligevel ikke kan bruge senere.
> bless $r_Album, 'Album';
og så endelig 'bless $slef, $class' som andre også foreslår.
> return $r_Album;
> } # constructor
Rent stilistisk plejer jeg ikke at skrive den sidste
return-sætning. Perl returnerer automatisk resultatet af den sidste
sætning.
Det er et smagsspørgsmål om man kan lide det eller ej. Der er nogle
der insisterer meget fast på at alle funktioner skalafsluttes med
return.
> sub albumartist
> {
Jeg fatter stadigvæk ikke hvad pointen med denne funktion er.
> Jeg benyttede en notation fra en bog, hvor det anvendes som en
> konvention, der viser, at vi har med private data at gøre.
> Men er alle klassens data ikke det?
Jo. Det er også privat hvorvidt du implementerer dit objekt som en
arrayref eller en scalarref.
> Jeg har set eksempler, hvor der anvendes lutter store bogstaver, og
> der er også kommentarer om anvendelse af blanding af store og små
> bogstaver i forhold til konventioner i Perl's egen kode.
'perldoc perlstyle' giver en række stilistiske råd. Den skriver ikke
decideret noget om objekter, men skriver som noget af det sidste om
store og små bogstaver.
--
Peter Makholm | We constantly have to keep in mind why natural
sslug@sslug | languages are good at what they're good at. And to
http://hacking.dk | never forget that Perl is a human language first,
| and a computer language second
|
||||||||||||||
|
||||||||||||||