Hallo,
ich arbeite gerade an einer export-Schnittstelle von Warenwirtschaft zu Webshop und retour.
Dazu habe ich einige Objekte (DatenErstellen, DatenExportieren, ExportFinalisieren,...) erstellt.
Wie das Leben so spielt, hat jeder Kunde seine Extrawürste, die ich gerne in Ableitungen der obigen Klassen einbauen möchte. Im config sollte dann stehen, welche Klasse für den Export verwendet werden soll.
Jetzt die große Frage:
Ist es möglich und sinnvoll, ein
DatenErstellen = new "Kunde1_DatenErstellen"
zu machen?
Oder wie würdet ihr sowas lösen?
Danke,
Mandy
Schau dir mal das Decorator-Pattern an.
be the hammer, not the nail!
Ja, es ist möglich aus einem string eine Klasse . Sinnvoll ist es in deinem Fall nicht. Ich würde alles Kundenspezifische in eine dll auslagern und je nach kunde die entsprechende dll ausliefern.
Wie man aus einem string eine Klasse erzeugt, wurde sehr häufig besprochen. Verwende hierzu die Forumsuche und poste die besten Treffer hier.
Hallo Mandy,
Wie man aus einem string eine Klasse erzeugt, wurde sehr häufig besprochen. Verwende hierzu die Forumsuche und poste die besten Treffer hier.
Stichwort: Activator.CreateInstance
herbivore
Hallo,
vielen Dank für die schnellen Antworten.
Eine Beschreibung zur Instanzierung per String findet sich auf der MSDN: Activator.CreateInstance
Aber das ist wahrscheinlich nicht die optimale Lösung
@aequitas
Danke für den Hinweis auf Patterns...
darüber bin ich dann auf Interfaces gekommen, so bekommt jedes Kundenobjekt die komplette Schnittstelle verpasst, und ich muß nicht ständig unterscheiden.
Das mit den .dll's habe ich mir bei den paar Kleinigkeiten noch gar nicht überlegt.
Da würde ich eher eine gemeinsame Code-Bibliothek für die einzelnen Programmversionen verwenden.
Danke,
Mandy
Hallo Mandy,
Für solche sachen sollte man sich einen Microkernel oder DI-Container holen.
Dort ist schon alles was du für die Instanziierung brauchst fertig drin.
Aber die Kundenspezifischen Klassen sollten wirklich in einer neue DLL pro Kunde kommen. Das haben wir in meiner Firma häufig genug und ohne die Aufteilung wäre das absolut unmöglich zu warten.
Gruß
Juy Juka