Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Constructor from Instance (https://www.delphipraxis.net/214454-constructor-instance.html)

uligerhardt 17. Jan 2024 08:37

AW: Constructor from Instance
 
Zitat:

Zitat von Rollo62 (Beitrag 1532079)
Sorry, aber warum will man sowas überhaupt machen, mir fällt dazu kaum ein Use-Case ein.
Bestenfalls wäre ein duplizieren einer Instanz, wozu ich dann immer eine explizite Methode ".Clone" dafür anlegen würde, die auch was entsprechend vorbereiten kann.

Naja, in Delphi ist es ja üblich, in Klassenhierarchien eine Methode
Delphi-Quellcode:
Assign
zu haben. Dann kannst du
Delphi-Quellcode:
Clone
so implementieren:
Delphi-Quellcode:
function TAnimal.Clone: TAnimal;
begin
  Result := TAnimalClass(ClassType).Create;
  Result.Assign(Self);
end;

Rollo62 17. Jan 2024 09:59

AW: Constructor from Instance
 
Ja das ist klar.
Ich weiss aber nicht wofür man dies im wirklichen Leben brauchen könnte, außerhalb der Klasse.

Delphi-Quellcode:
Animal2 := TAnimalClass(Animal1.ClassType).Create;



So verstehe ich die Aufgabe von unten.
Delphi-Quellcode:
Animal2 := Animal1.Class.Create;

uligerhardt 17. Jan 2024 15:49

AW: Constructor from Instance
 
Zitat:

Zitat von Rollo62 (Beitrag 1532098)
Ja das ist klar.
Ich weiss aber nicht wofür man dies im wirklichen Leben brauchen könnte, außerhalb der Klasse.

Delphi-Quellcode:
Animal2 := TAnimalClass(Animal1.ClassType).Create;



So verstehe ich die Aufgabe von unten.
Delphi-Quellcode:
Animal2 := Animal1.Class.Create;

Ich hab in unserem Code 6 Vorkommen von ClassType.*Create gefunden - 3 Clone-Methoden und 3 Verwendungen des Musters bei Third-Party-Klassen, wo wir keine Clone-Methode einbauen konnten (TGraphic z.B.).
Ist aber auch eine müßige Frage - ist halt eine Technik, die man bei Bedarf einsetzen kann.

Uwe Raabe 17. Jan 2024 16:05

AW: Constructor from Instance
 
Zitat:

Zitat von Rollo62 (Beitrag 1532098)
Ich weiss aber nicht wofür man dies im wirklichen Leben brauchen könnte, außerhalb der Klasse.

Z.B. in Factories.

Rollo62 17. Jan 2024 16:53

AW: Constructor from Instance
 
Ok, Factories überzeugt mich :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:30 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz