Thread Wow! (Promise Syntax) (41 answers)
Opened by Kuerbis at 2015-08-29 19:50

Muffi
 2015-09-03 09:59
#182024 #182024
User since
2012-07-18
1465 Artikel
BenutzerIn
[default_avatar]
Es kommt auch auf die Sprache an, wie man OO verwendet.

Z.B. würde man in Delphi/Pascal keine Objekte in einer Funktion erzeugen und zurückliefern.
Warum: Weil Pascal keinen gc hat und man Objekte per Hand aufräumen muss. Und die räumt per Konvention der auf, der sie auch erzeugt.

Sähe dann z.B. statt:
Code (perl): (dl )
my $obj = mach_ein_object(); # erzeugen und initialisieren


eher so aus:
Code (pascal): (dl )
1
2
3
4
5
obj := Irgendwas.new();
try
  mach_ein_object(obj); // nur initialisieren
finally
  obj.Free();


Von daher hätte janus hier recht, hier gibt's garantiert ein new.
Wo er nicht recht hätte ist, dass man in Pascal nichts/so wenig wie möglich in den Konstruktor packt, da, wenn der schief geht und eine Exception wirft evtl. das Objekt nicht sauber aufgeräumt wird.
Man würde da eher eine separate Init()-Funktion baun, die dann auch im try steht.

Also von daher gibt's kein richtiges oder falsches OO.
Und da es in der Sprache Perl bis jetzt relativ gängig ist Objekte aus einer Funktion/Methode zurückzuliefern seh ich das als gängige Praxis an.
Last edited: 2015-09-03 10:01:32 +0200 (CEST)
1 + 1 = 10

View full thread Wow! (Promise Syntax)