Thread Perl OOP (12 answers)
Opened by sid burn at 2006-09-21 19:24

pq
 2006-09-22 17:24
#70147 #70147
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=sid burn,22.09.2006, 13:28]
Wenn ich die duration um ein Tag erhöhen möchte, dann möchte ich dies lediglich so schreiben
"$user->duration->add(1)" und nicht so "$user->duration_add(1)"
[/quote]
schon klar, aber warum?
Quote
Letztendlich ist es das gleiche wie in anderen programmiersprachen, wo ich einfach nochmals hinten dran einfach eine methode aufrufen kann.

ich weiß nicht, bei simplen integern oder strings rufst du doch in
anderen sprachen auch keine methode mehr auf.
Quote
Klar könnte ich das auch machen. Man könnte auch "net_ftp_connect" schreiben anstatt extra ein namespace zu benutzen. Und dann wieder zurück richtung C gehen oder so wie es PHP macht.

moment, moment. du hast mich glaube ich nicht verstanden.
net_ftp_connect ist ja witzlos. wie gesagt, simple integer oder strings
finde ich als objekte overkill. und da, wo du meinst, ein objekt haben
zu müssen, mach auch eins. aber nicht implizit bei *jedem* attribut.
Quote
Wenn ich 1 Tag hinzuaddieren. Warum sollte dies zu User gehören. Warum sollte diese Methode auch für "name", "password", "email" zur Verfügung stehen? Diese Methode hat doch gar nichts mit den anderen Attributen zu tun. Und ist speziell eine Methode nur für dieses Attribut.

jetzt bin ich ganz verwirrt. wenn der user eine methode add_duration hat,
warum steht die plötzlich "für "name", "password", "email" zur Verfügung"?
und wenn ich die duration eines users erhöhen will (was auch immer
das bedeutet), dann gehört diese methode für mich schon zum user.
Quote
Das man letztendlich aber eine Klasse hat die nur ein Attribut beinhaltet finde ich ebenso unschön. Von mir aus muss es ja auch nicht so sein das ich wiederrum Klassen benutze. Ich würde auch eine andere Weg benutzen. Ein anderer Fällt mir aber nicht ein.

bis jetzt sehe ich nur, dass dir ->foo_bar nicht gefällt und du lieber
->foo->bar schreiben willst. das finde ich gut für attribute, die richtige
objekte sind. wenn du der meinung bist, duration verdient eine eigene
klasse, dann hält dich nichts davon ab, das zu machen.
ich finde einzig und allein den ansatz schlecht, generell jedesattribut
einer klasse so zu behandeln. dann kommst du vom hundertsten ins
tausendste. du verschwendest speicher und cpu.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread Perl OOP