Definition: Wird verwendet, um die Komplexität der Kommunikation zwischen mehreren Objekten und Klassen zu verringern. Das Mediatormuster gehört zum Verhaltensmuster.
Merkmale:
1. Reduzieren Sie die Komplexität der Klasse und konvertieren Eins-zu-Many in eins zu eins.
2. Entkopplung zwischen verschiedenen Klassen.
3.. Nach dem Dimit -Prinzip.
Anwendungen in der Entwicklung auf Unternehmensebene und gemeinsamer Frameworks: C im MVC-Modus
Spezifische Beispiele:
public class Demo {public static void main (String [] args) {Mediator M = new Mediator (); Abteilung D1 = neue Abteilung (M, "Entwicklungsabteilung"); Abteilung D2 = neue Abteilung (M, "Finanzabteilung"); Abteilung D3 = neue Abteilung (M, "Planungsabteilung"); M.Add (D1, "Dep"); M.Add (D2, "Fin"); M.Add (D3, "C"); D2.Apply ("Es gibt ein Projekt in der Hand zu entwickeln", "DEP"); D1.Apply ("Das Entwicklungsprojekt erfordert Fonds", "Fin"); D1.Apply ("Das Projekt wurde entwickelt und muss geplant und veröffentlicht werden", "C"); D3.Apply ("Die Pressekonferenz erfordert Mittel", "Fin"); }} Klassenabteilung {privater String -Name; Privatmediatormediator; Public Department (Mediator -Mediator, String -Name) {this.name = name; this.Mediator = Mediator; } public String getName () {return name; } public void setName (String -Name) {this.name = name; } public void anwenden (String -Sache, String -Koordinate) {System.out.println ("Wir sind"+this.getName ()+","+Sache+", brauchen Hilfe"); Mediator.Dispatch (this, Sache, Koordinate); } public void Handle (String -Name, String -Sache) {System.out.println ("Wir sind"+this.getName ()+","+name+"brauche unsere Hilfe, wir werden ihre Angelegenheiten sofort bewältigen"); System.out.println ("*********************** ********************************************************************************************************************************************************* ******************************************************************************************************************************************************** ********************************************************************************************************************************************************* ******************************************************************************************************************************************************** ********************************************************************************************************************************************************* ******************************************************************************************************************************************************** ********************************************************************************************************************************************************* *Intermediary -Objekt hält alle Kollegen Objekte und ist für die Planung der Koordinierungsarbeiten verschiedener Abteilungen verantwortlich*/Klasse -Mediator {privater String -Name; Private Map <String, Abteilung> map = new HashMap <String, Abteilung> (); public void add (Abteilung D, String Name) {this.map.put (Name, d); } public void Dispatch (Abteilung DPT, String -Sache, String -Koordinate) {Abteilung d = map.get (Koordinate); D.Handle (dpt.getName (), Sache); }}Der Unterschied zwischen dem Vermittlungsmodus und dem Proxy -Modus: Als ich zum ersten Mal von den Modi dieser beiden Modi hörte, war ich der Meinung, dass diese beiden Modi der gleiche Modus zu sein schienen, aber diese beiden Modi waren völlig unterschiedlich. Der Proxy -Modus wurde hauptsächlich verwendet, um tatsächliche Objekte auszublenden und andere daran zu hindern, die spezifischen Betriebsdetails zu kennen. Der Zwischenmodus wurde hauptsächlich für komplexe Wechselwirkungen mehrerer Objekte mit mehreren Objekten verwendet. Um diese Interaktionen zu vereinfachen, wurde der Terminator -Modus gefunden.