2016-04-27 4 views
0

Ich bereite ein C# .Net-Projekt für unser Unternehmen vor und würde gerne wissen, welches Designmuster am besten für die Erstellung all dieser Geschäftsdokumente geeignet ist. Ich habe einige der verfügbaren Entwurfsmuster studiert, um ehrlich zu sein habe ich Probleme, sie auf mein Problem der realen Welt anzuwenden, um hier mein Szenario zu konkretisieren: Unterschiedliche Arten von Dokumenten müssen erstellt, eingelesen und durch Windows Forms und gepflegt werden Zuletzt gespeichert in einer Datenbank, wie zB Rechnungen (Kauf und Verkauf), Verträge (Kauf und Verkauf), Frachtbrief, Akkreditiv, verschiedene Lager- und Lagerpapiere, eventuell später eine Reihe von Buchungsbelegen. An erster Stelle dachte ich, Fabrik-Methode würde den Job tun, aber ich bin mir nicht sicher, ob es die richtige Wahl für diese Aufgabe ist. Ich denke, es ist der beste Ansatz, eine abstrakte Klasse namens "Document" mit allen gängigen Feldern (wie docId, docDate, docNumber, docIssuer, etc.) Als Basis zu haben und dann in die konkrete Erstellung des gewünschten Dokumentobjekts einzutauchen . Welche Möglichkeiten gibt es? Im Fall von Fabriken: Muss ich für jedes Dokument eine konkrete Klasse definieren und das Objekt erstellen (was eine einfache Vererbung wäre, oder?) Oder wie sollte ein Factory-Ansatz in Bezug auf mein Problem aussehen? Ist es nicht besser, jede Dokumentenspezifikation (die letztendlich wie jedes einzelne Datenbanktabellenfeld wäre) als eigene Klasse zu definieren und ein Builder-Muster oder ein zusammengesetztes Muster zu verwenden, um das gewünschte Dokument zur Laufzeit zusammenzusetzen? Oder gibt es andere Ansätze? Ich wundere mich, dass viele Business-Programme diese Entscheidung treffen müssen, aber ich konnte keine vorherigen Fragen zu StackOverflow für dieses ziemlich häufige Problem finden.dynamisches Erstellen von Geschäftsdokumenten

Wie bereits erwähnt, befinden wir uns in der Planungsphase und diese Ausgabe kann als eine wichtige Säule der Architektur betrachtet werden, daher würde jede konstruktive Beratung sehr geschätzt werden.

+0

Wohin werden Sie diese Daten speichern (SQL/NoSQL)? – Daemon025

+0

In einer Anwendung dieses Bereichs werden Sie wahrscheinlich viele Entwurfsmuster verwenden. Es gibt kein "passendes" Muster, um alle Fragen zu beantworten, die Sie in Ihrem Beitrag stellen. Skizzieren Sie die Beziehungen zwischen den Objekten, schreiben Sie Code, der etwas erledigt. Wiederholen. Wiederholst du den Code oder löst das gleiche Problem immer wieder? Dann wird das Bedürfnis nach Designmustern erscheinen. – dbugger

+0

Ich benutze MS SQL 2008R2 – user3079832

Antwort

0

Sie können table per hierarchy als Ihr Datenbank-Design verwenden, dann ORM wie NHibernate oder Entity Framework verwenden, um Dokumente zu erstellen (anstatt Factory zu verwenden).

+0

"Onkel Bob" empfiehlt, die Verwendung von Frameworks zu minimieren, weil Sie davon abhängig werden, vor allem auf lange Sicht ist dies ein Problem zu berücksichtigen – user3079832

Verwandte Themen