Einzelnen Beitrag anzeigen

Turtle85

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

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