Thread Wow! (Promise Syntax)
(41 answers)
Opened by Kuerbis at 2015-08-29 19:50
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
|