Die Eigenschaften gemeinsam eine zufällige Kombination aus einer Person
und Company
Instanz kann eine „Assoziationsklasse“ modelliert werden.
Es gibt eine Notation dafür in UML, und es ist nicht schwer, ein solches Konzept in einer erweiterbaren Programmiersprache zu erstellen.
Die Idee ist, dass jedes zufällige Paar von Objekten bestehend aus Person
und Company
eine Beziehung hat, und diese Beziehung ist selbst ein Objekt. Es ist weder Person
noch Company
, aber das Zeug mit der Verbindung zwischen einer bestimmten Person
und Company
Instanz verbunden.
Das Zeug (Eigenschaften, Methoden) bildet eine Klasse: die Person-Company
Assoziationsklasse.
Ich habe dies in Lisp mit einigen Makros zum Definieren einer Assoziationsklasse für ein bestimmtes Klassenpaar und einer globalen schwachen Hashtabelle zum Zuordnen von Objektpaaren zu ihrem Assoziationsklassenobjekt (für eine gegebene Person und Firma war es möglich, die Assoziation abzurufen, und diese Assoziation würde verschwinden, wenn diese Objekte zu Müll werden würden).
Die tatsächliche Verbindung zwischen bestimmten Unternehmen und Menschen ist einfach, mit z. Listen oder andere assoziative Datenstrukturen. Ein Personenobjekt kann eine Liste von Firmen haben und umgekehrt. Die Assoziationsklassen-Idee adressiert das Problem, wo das Person-Company-Zeug zu platzieren ist. Zum Beispiel hat jede Person
eine Rolle innerhalb einer Company
(sagen wir mal). Wir können keine role
Variable in einem Person
haben, weil es viele Rollen w.r.t viele Firmen haben kann. Wir können sicherlich keine role
in der Firma haben, weil es nicht einmal eine Person ist; Es hat Leute damit zu tun, die Rollen haben. Die Rolle kann in den Verband gehen: Problem gelöst.
möglich Duplikat [Modellierung Eltern-Kind-Beziehungen mit Klassen] (http://stackoverflow.com/questions/4089582/modelling- Eltern-Kind-Beziehungen mit Klassen –