See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Vermittler (Entwurfsmuster) – Wikipedia

Vermittler (Entwurfsmuster)

aus Wikipedia, der freien Enzyklopädie

Nur Liste
Dieser Artikel oder Abschnitt besteht hauptsächlich aus Listen, an deren Stelle besser Fließtext stehen sollte.

Ein Vermittler (engl. Mediator) ist in der Softwareentwicklung ein Entwurfsmuster und gehört zur Kategorie der Verhaltensmuster (Behavioral Patterns). Das Muster dient zum Steuern des kooperativen Verhaltens von Objekten, wobei Objekte nicht direkt kooperieren, sondern über einen Vermittler. Es ist eines der sogenannten GoF-Muster (siehe Viererbande).

Inhaltsverzeichnis

[Bearbeiten] Verwendung

Der Vermittler findet Anwendung, wenn

  • Objekte in einem System auf komplexe Art und Weise kooperieren,
  • die Wiederverwendung von Objekten durch den Bezug auf viele andere Objekte erschwert wird oder
  • Objekte die Objekte, mit denen sie kooperieren nicht kennen können oder sollen.

[Bearbeiten] UML-Diagramm

Bild:Vermittler.png

[Bearbeiten] Akteure

  • Vermittler
    • definiert Schnittstelle zur Kommunikation mit Kollegen
  • KonkreterVermittler
    • implementiert das kooperative Verhalten durch Koordination der beteiligten Kollegen
    • kennt und verwaltet beteiligte Kollegen
  • Kollege
    • kennt seinen Vermittler
    • kommuniziert mit seinem Vermittler statt mit anderen Kollegen

[Bearbeiten] Vorteile

  • Die Koordination des kooperativen Verhaltens wird zentral verwaltet.
  • Die Veränderung des kooperativen Verhaltens kann unabhängig von den beteiligten Kollegen umgesetzt werden. Solche Änderungen des Verhaltens können durch neue konkrete Vermittler erreicht werden. Dadurch wird die Unterklassenbildung eingeschränkt, da die Änderungen nicht in den verschiedenen konkreten Kollegen vorgenommen und dementsprechend viele neue Unterklassen gebildet werden müssen.
  • Das Muster unterstützt eine lose Kopplung zwischen den Kollegen.
  • Das Protokoll der Kollegen wird vereinfacht.

[Bearbeiten] Nachteile

Da der Vermittler ein Verhalten kapselt, das andernfalls auf mehrere Klassen verteilt wird, ist er selbst komplexer als die einzelnen Komponenten es gewesen wären. Es besteht die Gefahr, dass ein monolithischer Programmkomplex entsteht, der schwer wart- und erweiterbar ist.

[Bearbeiten] Beispiel

Ein typisches Beispiel für einen Vermittler ist ein Chatraum. Chatter melden sich beim Chatraum an und ab, um mit anderen Chattern kommunizieren zu können. Sie kommunizieren nicht direkt miteinander, sondern über den Chatraum. Verschiedene konkrete Chaträume können nun unterschiedliche Kommunikationsarten ermöglichen. So kann ein Chatraum Mitteilungen eines Chatters an alle Chatter weiterleiten, ohne dass der Chatter diese kennen muss. Ein anderer Chatraum kann hingegen nur die Kommunikation zwischen einzelnen Chattern ermöglichen. Möchte man die Kommunikation um eine Protokollierung erweitern, erweitert man dazu einen konkreten Chatraum, während die Chatter nicht betroffen sind.

[Bearbeiten] Verwandte Entwurfsmuster

  • Kollegen können den Vermittler beobachten und umgekehrt.


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -