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/)
-   -   Delphi (Abstract)Factory Pattern und Datentransfer (https://www.delphipraxis.net/186465-abstract-factory-pattern-und-datentransfer.html)

Sir Rufo 5. Sep 2015 08:58

AW: (Abstract)Factory Pattern und Datentransfer
 
Zitat:

Zitat von Lemmy (Beitrag 1314809)
nochmals Danke...

aber dann sprechen wir doch streng genommen nicht mehr von einer Factory?!? denn sie verwaltet doch letztlich nur Instanzen die ich nach bestimmten Kriterien abfragen kann....

Die eigentlichen Factories sind die
Delphi-Quellcode:
IFillData
Instanzen, denn die bauen das Dokument.

Man sollte sich allerdings auch nicht zu sehr auf die Patterns versteifen um diese auf Teufel komm raus umzusetzen. Diese Lösung mit einem DI-Container ist wesentlich flexibler und trifft eher das, was du haben möchtest (soweit ich das aus deiner Beschreibung heraus lesen kann).

Lemmy 5. Sep 2015 12:08

AW: (Abstract)Factory Pattern und Datentransfer
 
Zitat:

Zitat von Sir Rufo (Beitrag 1314827)
Die eigentlichen Factories sind die
Delphi-Quellcode:
IFillData
Instanzen, denn die bauen das Dokument.

OK, Factories war für mich bisher ein Inbegriff von "Bau mir eine Instanz einer Klasse"



Zitat:

Zitat von Sir Rufo (Beitrag 1314827)
Diese Lösung mit einem DI-Container ist wesentlich flexibler und trifft eher das, was du haben möchtest

wollte ich so nicht schreiben weil ich mir nicht sicher war, habe aber auch eher einen DI-Container dahinter vermutet... Scheint also doch noch nicht alles verloren zu sein bei mir :-)

Sir Rufo 5. Sep 2015 15:13

AW: (Abstract)Factory Pattern und Datentransfer
 
Eine Abstract Factory hast du doch auch mit
Delphi-Quellcode:
IFillConcreteData
.

Wenn du dort nun noch Methoden einführst, die eine Instanz erschaffen
Delphi-Quellcode:
IFillConcreteData = interface
  function BuildPDF( AData: TConcreteData ): IPDFDocument;
  function BuildXLS( AData: TConcreteData ): IXLSDocument;
end;
dann hast du deine Factory. Die konkreten Factories erzeugen dann die entsprechende Formular-Version.

Der Container davor sammelt nur die ganzen Factories und gibt dir die gewünschte zurück.


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

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