Association Class Role With Role Type

Aus THM-Wiki
Wechseln zu: Navigation, Suche

Associoation Class Role with Role Type

Problem

Beim “Associoation Class Role”- Pattern wird für jede Rolle eine Assoziation (Rolle) zwischen der Basisklasse und dem Clienten benötigt. Jede dieser Rollenobjekte kann jedoch die gleichen Attributwerte besitzen. Dies führt zu Redundanz in den Daten und soll durch eine weitere Assoziation zum Rollenobjekt behoben werden.

Beispiel: Ein Unternehmen tritt als Käufer eines Produktes in 20 verschiedenen Zeiträumen auf. Beim “Associoation Class Role”- Pattern werden 20 Customer-Rollen mit gleichem Namen und gleicher Beschreibung benötigt, jedoch mit unterschiedlichen Zeiträumen.

Context

Gleiche Rollen-Typen (z.B. Customer) werden mit unterschiedlichen Metadaten (z.B. Zeitraum, in der das Unternehmen die Kundenrolle für ein Produkt einnimmt) benötigt.


Forces

Es wird ein abstraktes, allgemeingültiges, flexibles Model benötigt, welches mehr Objekte als Klassen verwaltet. Eine Klasse (Role-Type) nimmt den Platz von mehreren Klassen (vormals Role) ein. Jedoch wird für jeden Rollen-Typ weiterhin ein Objekt benötigt.

Roles und Role Types müssen dynamisch erzeugt und benutzt werden können. Spätere Klassenmanipulation muss minimiert werden. Der Ansatz folgt dem Konzept der generischen und wiederverwendbaren Rollen-Typen.

Solution

Association Class Role with Role Type Metamodel, Quelle: http://www.jot.fm/issues/issue_2002_09/column2

Nach obigen Beispiel wird ein Role-Type mit Namen “Customer” erzeugt und den Metadaten zugeordnet (Role-Assignment). Beispielsweise können mehrere Zeiträume immer der gleichen Rolle “Customer” zugeordnet werden. Wie man leicht sieht, wird die Redundanz in den Daten vermieden.