Frage

Ich habe einige Probleme, durch ein Design-Problem zu denken, und dachte, dass die Gemeinschaft möglicherweise helfen kann, mich in die richtige Richtung zu zeigen. Ich modelliere ein Mitarbeitermanagementsystem für mein Unternehmen und bin zu einer Designfrage gekommen, die mich stumpft.

Hier ist das Szenario:

Ich habe eine Mitarbeiterklasse, die die Mitarbeiterklasse über eine Liste von Büroobjekten hat (wo der Mitarbeiter arbeitet und funktioniert hat). Ich habe eine Anforderung, die Fähigkeit zu schaffen, einen Mitarbeiter zwischen Büros zu übertragen. Es gibt einen zusätzlichen Overhead für die Übertragungsanfrage (Zulassungen, Bewertungen), aber am Ende ist die Zulassungen mein Überweisungsobjekt dazu veranlassen, dass die Mitarbeiter der Mitarbeiterobjekte geändert werden soll.

Ich verwende C #, EF4 und POCO für meine Objekte. Ich bin nicht sicher, wie Sie das Übertragungsobjekt modellieren. Es wird seit einiger Zeit anhalten und dürfen nicht für einige Tage abgeschlossen sein (Zulassungen müssen abschließen, bevor er fortgesetzt wird). Das Übertragungsobjekt muss den Mitarbeiter erfahren, um zu ändern, und das neue Büro für den Mitarbeiter. Ich fühle mich, als wäre es ein schlechtes Design, um den Mitarbeiter ein Kind des Übertragungsobjekts zu machen und dort zu ändern. Ich frage mich nur, ob jemand einen Rat hat, wie man diese Anforderung modelliert.

War es hilfreich?

Lösung

Sie könnten die Übertragung als vollständig separates Objekt behandeln - ein EmploineeTeTransfer.

Insbesondere die folgenden Daten enthalten: 1. Die eindeutige Kennung eines Angestellten. 2. Die eindeutige Kennung einer Übertragung vom Amt. 3. Die eindeutige Kennung eines Transfers zum Amt. 4. ein Statusanzeiger für den Fortschritt der Übertragung.

Dies ist ein leichte Objekt, das keine anderen Objekte enthält - sie referenziert sie mit eindeutiger Kennung.Wenn die Übertragung verarbeitet wird, validieren Sie, dass der Mitarbeiter und der Transfer an Büros noch gültig sind, und aktualisieren Sie die Mitarbeiterbüros.

Die einzige Voraussetzung für diese Lösung ist, dass der Mitarbeiter und die Büros vor der Erstellung der Übertragung existieren müssen.

Andere Tipps

Es hört sich an, als wäre es kein Objekt, es ist ein Workflow.Schauen Sie sich die Windows Workflow Foundation an ... Hier ist ein Gutes Quickstart-Beispiel.

Wenn Sie über die Verantwortung des Transferobjekts nachdenken, ist es, die Übertragung eines Angestellten in ein anderes Büro zu verwalten.Ich würde dies mit dem Transferobjekt entwerfen, das sowohl vom Mitarbeiter als auch vom Büro getrennt ist, sondern einen Verweis auf jeden.Das Übertragungsobjekt würde wahrscheinlich ein Enum der Genehmigungsstatuswerte und beim Erreichen eines Endstatus (stornierter oder endgültige Genehmigung), das Übertragungsobjekt könnte die Aktion des Mitarbeiters des Mitarbeiters mit dem neuen Büro durchführen und sich als abgeschlossen markieren.Es ist kein schlechtes Design für das Übertragungsobjekt, um Verweise auf die anderen Objekte zu haben.Die Beziehung zwischen Übertragung und Angestellten (sowie Übertragung und Büro) in diesem Fall eine Beziehung "Verwendet".

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top