AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein dynamisch Klassenkonstruktor aufrufen
Thema durchsuchen
Ansicht
Themen-Optionen

dynamisch Klassenkonstruktor aufrufen

Ein Thema von luisk · begonnen am 24. Jul 2014 · letzter Beitrag vom 25. Jul 2014
 
Dejan Vu
(Gast)

n/a Beiträge
 
#7

AW: dynamisch Klassenkonstruktor aufrufen

  Alt 25. Jul 2014, 07:56
Ich wollte nur eine simples Code-Pattern für eine Klassenfabrik zeigen. Ich schrieb auch, das eine solche Fabrik zwar funktioniert, aber im konkreten Fall nichts taugt, und deshalb durch eine für eine konkrete Basisklasse implementierte Fabrik ersetzt werden muss. Diese 'Basisklasse' kann man (muss man aber nicht) mit Generics abbilden, sodaß eine Implementierung reicht. Verwendung in etwa so:
Delphi-Quellcode:
  myClass := myFactory<TFruit>.GetClass('Apfel');
  myInstance := myClass.Create('Booskop', Mittelgroß, FuerEinsFuffzichDasKilo);
Als konkrete Implementierung für Früchte kann ich dann (sofern der Konstruktor immer gleich ist), wieder mit GetInstance arbeiten.
Delphi-Quellcode:
  //
  myInstance := myFruitFactory.GetInstance('Booskop', Mittelgroß, FuerEinsFuffzichDasKilo);
Nun kann man vielleicht die Parameter als 'Array Of Const' übergeben, sodaß man die generische Factory auch mit einem 'GetInstance' verwenden kann, aber da weiss ich nicht, wie man einen Konstruktorparameter dynamisch aus einem 'Array Of Const' füttert (außer, der Konstruktor akzeptiert selbst ein 'Array Of Const', was aber blöd wäre).
Delphi-Quellcode:
  //
  myClass := myFactory<TFruit>.GetInstance('Apfel',['Booskop', Mittelgroß, FuerEinsFuffzichDasKilo]);
Du hast das bestimmt in deinem Spring-Framework gelöst (oder eben anders=besser).

Da man jedoch eine Factory auch fafür verwendet, Klassen stringent zu initialisieren, ist eine Implementierung über Generics vielleicht nicht das gelbe vom Ei.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 Uhr.
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