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.
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.
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:
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.
Příklad ze skutečného světa
Kino
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.
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
- ^ Fowler, Martin (1997-07-20). „Řešení rolí“ (PDF ). Vzor analýzy. Citováno 2007-01-16.
- ^ 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).
- ^ 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í
- Fowler, Martin (1996-11-27). Vzory analýzy: opakovaně použitelné modely objektů. Addison-Wesley. ISBN 0-201-89542-0. Úvod do objektově orientované analýzy s koncepčními modely
- Raventós, Ruth a Cabot, Jordi (2006). „Konceptuální modelování vzorů pro role“ (PDF ). Časopis o sémantice dat V. Citováno 2007-01-16. Citovat deník vyžaduje
| deník =
(Pomoc)CS1 maint: více jmen: seznam autorů (odkaz)[mrtvý odkaz ] - Katedra informatiky (2004). „Využití rolí ve vzorech“. Vzor analýzy. University of Illinois v Urbana-Champaign. Archivovány od originál dne 01.01.2007. Citováno 2007-01-16.
- chromatický (2006-08-31). „Využití rolí ve vzorech“. Technický. O'Reilly Media. Citováno 2007-01-16. Externí odkaz v
| práce =
(Pomoc)
Související odkazy
- Vzor role herce, implementace SPS https://web.archive.org/web/20071105232543/http://www.ibstaff.net/fmartinez/?p=16