Model třídy rolí - Role Class Model

V počítačové vědě je model třídy role je role vzor analýzy[1] popsáno (ale nevynalezeno [2]) Francis G. Mossé ve svém článku o modelování rolí.[3] Vzor třídy rolí poskytuje třídě schopnost hrát více rolí a vložit charakteristiku role do vyhrazené třídy.

V naší společnosti, jak jsme ji budovali, jsou role všude. Každý, kdo se snaží pracovat v týmu, aby něco vytvořil, má svoji roli. v kinematografie Na tvorbě filmu se podílí mnoho různých osob: filmový režisér, výrobce, herci, hrát spisovatele (s) atd. I naše státní organizace jsou založeny na různých rolích. V Republika, Máte Prezident, Ministři, zástupci atd.

Řešení těchto situací je jedním z problémů, s nimiž se nejčastěji setkáváme během objektově orientované analýzy. Francis G. Mossé identifikoval 5 vzorců analýzy rolí, které lze použít k řešení většiny problémů souvisejících s rolemi: dědičnost rolí, role asociace, třídy rolí, zobecněné třídy rolí a role tříd asociací. Všichni mají různé stupně omezení, flexibility nebo síly, které společně nabízejí kompletní řešení většiny problémů souvisejících s rolemi.

Úmysl

Model, který umožňuje třídě hrát jednu nebo více rolí současně. Role - jak ji definoval Francis Mossé v Modelování rolí[3] - je pojem účelu, který by třída mohla mít v určitém kontextu.

Kontext

Je uveden následující příklad:

Na filmu pracuje mnoho osob, z nichž každý má jinou roli. Na rozdíl od jiných konceptů se člověk neomezuje na jednu roli. Jeden může být obojí ředitel a a charakter ve filmu. Modelování role pro takový koncept by vyžadovaly, aby třída mohla hrát více než jednu roli.

Řešení pomocí dědictví konceptulovat roli - srov. model role dědičnosti - není možný, protože by to člověku umožnilo hrát pouze jednu roli. Jak je vidět na obrázku 1 níže, dědický vzor říká, že postava, která je osobou, hraje ve filmu. Nelze však říci, že osoba hrající postavu je také režisérem. Protože dědičnost dělá z postavy obecně osobu, nikoli konkrétní osobu.

Obrázek 1: Model dědické role použitý v kontextu filmu (pomocí UML reprezentace meta modelu)

Problém

Jak je vysvětleno v Kontext, nelze uvažovat o použití dědičnosti k hraní více než jedné role, protože třída v takovém kontextu nemohla hrát dvě role současně (srov. model dědičnosti).

Očekáváním je mít model, kde lze třídu považovat za více než jeden koncept nebo roli a kde lze specifikovat atributy specifické pro jeden z těchto konceptů.

Řešení

Řešením předchozího problému by mohlo být použití modelu role asociace, který by mohl vytvořit asociaci mezi osobou a filmem. V takovém případě však nebylo možné uložit konkrétní informace o každé roli. The model třídy role poskytuje flexibilitu přidružení s atributy specifickými pro jednotlivé role a v případě potřeby is operacemi třídy.

Obrázek 2: Meta model třídy rolí (pomocí UML reprezentace meta modelu)

Tento meta model - na obrázku 2 - ukazuje třídu rolí jako prvek spojující Klient a BaseClass. Pro Klient interakce s Role je jako interakce s Základní třída sám o sobě, ale z pohledu to očekává. Výhodou role jako třídy je, že na ni mohou být vázány atributy.

Další situace, kde je vzor Role zajímavý, je situace, kdy máte následující situaci:

Obrázek 2.1: Držitel smlouvy bez vzoru role

Pak si uvědomíte, že jako držitel smlouvy má Osoba specifické atributy. The role držitele UML se stane vyhrazenou třídou Držitel smlouvy s těmito specifickými atributy. Všimněte si, že v takovém případě je multiplicita blízká osobě a smlouvě vždy 1. Znamená to, že jste jeden Držitel smlouvy objekt pro každé přidružení mezi Smlouvou a Osobou.

Obrázek 2.2: Držitel smlouvy se vzorem role

Příklad ze skutečného světa

Kino

Obrázek 3: Aplikace modelu tříd rolí na 7. umění (přehled)

Jednoduchá aplikace modelu třídy role v reálném příkladu je v 7. umění (viz Obrázek 3 ), kinematografie. Toto umění zahrnuje tvorbu (film) a lidi, aby ji vytvořili. Každý člověk má ve filmu jinou roli, mohou to být herci a hrát postavy, může to být režisér nebo scénárista atd. Osoba se neomezuje pouze na jednu roli ve filmu, mohou to být herci i režiséři a ještě více. Například film Scoop (2006) byl v režii Woody Allen, je také scénáristou a hraje roli Sid Waterman.

Obrázek 4: Sedmé umění podrobněji (pomocí UML Diagram tříd zastoupení). Klikni pro zvětšení.

v Obrázek 4, je možné vidět podrobněji roli, kterou může každý člověk hrát ve filmu. Z filmu je možné požádat o seznam štábů a obsazení, které jej pomohly vypracovat. Každá osoba má jednu nebo více rolí (např. Herec, režisér, producent, kameraman atd.) ve filmu a může se účastnit více než jednoho filmu. Osoba může být dokonce hercem ve filmu a producentem v jiném. Jednou z výhod použití třídy role v případě role herce je, že kvality postavy lze uložit do role. To platí pro roli herce, to platí i pro ostatní role, ale možná ne všechny.

Modelováno bylo pouze několik z možných rolí Obrázek 4. Jedna snadno viditelná poznámka je, že ne všechny atributy role potřebují a použití modelu třídy role pro všechny z nich je zbytečné (jako pro Ředitel role). Mezi každou třídou rolí navíc existuje velká redundance. Redundance v počítačová věda znamená více práce na údržbě, což se nepřeje.

Silné a slabé stránky

Využití tohoto modelu závisí na obchodní proces. Vzor analýzy „Role Class Model“ nabízí možnost použít model se spojením mezi základní třídou a klientem. Dědičnost navíc není součástí řešení z důvodu flexibility nulových nebo více rolí (atributy a operace specifické pro roli). Síla implikuje také slabost jejího protějšku. Problém modelu třídy rolí je nadbytečnost, například metoda getName je viditelný ve všech třídách rolí popsaných v Obrázek 4. Pokud je to považováno za nepohodlné, model zobecnění třídy rolí, jak je definován v Modelování rolí[3] je možný způsob, jak jít.

Viz také

Francis G. Mossé[3] popsal další řešení problému role.

  • Dědičnost rolí
  • Role asociace
  • Zobecněné třídy rolí
  • Role asociační třídy
  • Role asociační třídy s typem role, což je vylepšení předchozího.
  • Referenční průhlednost

Reference

  1. ^ Fowler, Martin (1997-07-20). „Řešení rolí“ (PDF ). Vzor analýzy. Citováno 2007-01-16.
  2. ^ V knize je o tom citace Business Modeling With UML: Business Patterns at Work, Magnus Penker (autor), Hans-Erik Eriksson kapitola:

    ... Jeho původ není znám, ale tento vzor byl vyvolán u modelových systémů pro odstraňování min používaných OSN. Popis konceptů, které jsou základem tohoto vzoru, lze najít v knize Murray R. Cantor, Object-Oriented Project Management with UML (John Wiley & Sons, Inc., 1998).

  3. ^ A b C d Francis G. Mossé (září 2002). „Modelovací role - praktická řada analytických vzorů“. Journal of Object Technology, roč. 1, č. 4. s. 27–37. Citováno 2006-12-28.

Další čtení

Související odkazy