AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Factory Pattern

Ein Thema von Turtle85 · begonnen am 23. Mai 2019 · letzter Beitrag vom 23. Mai 2019
Antwort Antwort
Der schöne Günther

Registriert seit: 6. Mär 2013
6.190 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Factory Pattern

  Alt 23. Mai 2019, 09:47
Aus dem Quelltext geht aufgrund der "Familie" von Office-Produkten hervor dass es die abstrakte Fabrik ist.
  Mit Zitat antworten Zitat
Turtle85

Registriert seit: 23. Mai 2019
4 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: Factory Pattern

  Alt 23. Mai 2019, 10:25
Ich hoffe der Post kommt jetzt nicht doppelt... Da ich meine Antwort aber nicht sehe, gehe ich davon aus das beim Post versuch etwas schief gelaufen ist...

Macht generell mehr Sinn zusammen mit Interfaces.
Vielen Dank für den Link. Den werde ich mir mal anschauen...

Ja.
Es würde auch Sinn machen wenn Du erläuterst was du mit "Factory Pattern" meinst. Erst dann kann man entscheiden ob es "korrekt umgesetzt ist".
Dein "Im Internet habe ich hierzu mehrere Beispiele und Erklärungen gefunden." ist etwas arg unspezifisch.
Meinst du eines von den beiden?
https://de.wikipedia.org/wiki/Abstrakte_Fabrik
https://de.wikipedia.org/wiki/Fabrikmethode
Eigentlich wollte ich eine normales "Factory Pattern" abbilden. Beim einlesen habe ich hauptsächlich mit den folgenden beiden Links gearbeitet:
https://www.philipphauer.de/study/se...ory-method.php
http://www.nickhodges.com/post/Delph...e-Factory.aspx

Das ich hierbei jetzt schon Richtung "Abstract Factory Pattern" abgedriftet bin, war mir so nicht bewusst...



Wenn es eine Factory ist, dann nenn es doch auch im Code so 😉
TSoftwareApps -> TAppFactory
TAppleApps -> TAppFactoryApple
TOfficeApps -> TAppFactoryMicrosoft
Vielen Dank für den Hinweis. Meine Klassen habe ich entsprechend deinen Vorschlägen umbenannt.


Du bist wirklich ein Freund von enums. Mein persönlicher Geschmack wäre es nicht. Für mich ist es noch zu früh am morgen, aber spontan denke ich dass man mit einem
Code:
TAppFactory
------------
+ createCalculation(): TSoftwareApp
+ createPresentation(): TSoftwareApp
(...)
besser fährt als mit
Code:
TAppFactory
----------
+ createApp(enum TAppType): TSoftwareApp
Grade wenn man beispielsweise von deinem TAppleApps oder TOfficeApps weitere Unterklassen bilden würde (z.B. TOfficeEvaluationApps das nur Demo-Versionen liefert) müsste man die Case-Statements aus der Überklasse mitschleppen, kopieren, abändern. Fehleranfällig wenn da später geändert wird. Hat man einzelne Methoden für jeden Typ hat man das Problem nicht.
Bei deinen Vorschlägen bezüglich der "Create" Methoden stehe ich grad ein wenig auf dem Schlauch...
Meinst Du es so, dass die TAppFactory nicht mehr über den Enum die zu erstellende TSoftwareApp ermittelt, sondern das eine Methode exakt die TSoftwareApp erstellt die benötigt wird? Wenn ich das so richtig Verstanden habe, an welcher Stelle muss dann geprüft bzw. entschieden werden welche TSoftwareApp erstellt werden soll?
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Factory Pattern

  Alt 23. Mai 2019, 15:28
Aus dem Quelltext geht aufgrund der "Familie" von Office-Produkten hervor dass es die abstrakte Fabrik ist.
Verstehe ich zwar nicht, aber egal. Ich verstehe nicht mal wozu mach so eine abstrakte Fabrik braucht.
Wir haben in unserer Software zig Fabriken. Wenige davon sind Fabrikmethoden, die meisten jedoch eigene Fabrikklassen. Diese sind jedoch nicht abstrakt sondern konkrete. Zur Unterscheidung gibt es einen Key, oft ist das ein enum.
Oft gibt es noch eine Registry, die konkreten Klassen registrieren sich dort mit Ihrem Key. Die Fabrik sucht dann mit dem Key in der Registry und erzeugt die entsprechenden Klasse.
  Mit Zitat antworten Zitat
Turtle85

Registriert seit: 23. Mai 2019
4 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

AW: Factory Pattern

  Alt 23. Mai 2019, 15:45
Aus dem Quelltext geht aufgrund der "Familie" von Office-Produkten hervor dass es die abstrakte Fabrik ist.
Verstehe ich zwar nicht, aber egal. Ich verstehe nicht mal wozu mach so eine abstrakte Fabrik braucht.
Wir haben in unserer Software zig Fabriken. Wenige davon sind Fabrikmethoden, die meisten jedoch eigene Fabrikklassen. Diese sind jedoch nicht abstrakt sondern konkrete. Zur Unterscheidung gibt es einen Key, oft ist das ein enum.
Oft gibt es noch eine Registry, die konkreten Klassen registrieren sich dort mit Ihrem Key. Die Fabrik sucht dann mit dem Key in der Registry und erzeugt die entsprechenden Klasse.
Hast Du hierfür mal ein Beispiel wie Ihr das abbildet?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.655 Beiträge
 
Delphi 12 Athens
 
#5

AW: Factory Pattern

  Alt 23. Mai 2019, 15:59
Hilft dieser Thread vielleicht weiter?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Turtle85

Registriert seit: 23. Mai 2019
4 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6

AW: Factory Pattern

  Alt 23. Mai 2019, 16:44
Hilft dieser Thread vielleicht weiter?
Vielen Dank für den Link, werde ich mir morgen dann mal anschauen...
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:05 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 by Thomas Breitkreuz