定義:複数のオブジェクトとクラス間の通信の複雑さを減らすために使用されます。メディエーターパターンは行動パターンに属します。
特徴:
1.クラスの複雑さを減らし、1対1に変換します。
2。さまざまなクラス間のデカップリング。
3。ディミット原理を遵守します。
エンタープライズレベルの開発と一般的なフレームワークのアプリケーション:C MVCモードのC
具体的な例:
public class demo {public static void main(string [] args){mediator m = new mediator();部門D1 =新しい部門(M、「開発部」);部門D2 =新しい部門(M、「財務部門」);部門D3 =新しい部門(M、「計画部門」); M.Add(d1、 "dep"); M.Add(d2、 "fin"); M.Add(d3、 "c"); D2.Apply(「開発されるプロジェクトがあります」、「DEP」); D1.Apply( "開発プロジェクトには資金が必要です」、「FIN」); D1.Apply(「プロジェクトが開発されており、計画および公開する必要があります」、「C」); d3.apply( "記者会見には資金が必要です"、 "fin"); }} class department {private string name;プライベートメディエーターメディエーター。パブリック部門(メディエーターメディエーター、文字列名){this.name = name; this.mediator = mediator; } public string getname(){return name; } public void setName(string name){this.name = name; } public void apply(string thing、string coordinate){system.out.println( "we are"+this.getname()+"、"+gont+"、need help"); mediator.dispatch(this、thing、coordinate); } public void handle(string name、string thing){system.out.println( "we are"+this.getName()+"、"+name+"ヘルプが必要です。 System.out.println("************************************************************************************************************************************ ****************************************************************************************************************************************************つ******************************************************************************************************************************************************************つ****************************************************************************************************************************************************つ******************************************************************************************************************************************************************つ****************************************************************************************************************************************************つ******************************************************************************************************************************************************************つ****************************************************************************************************************************************************つ*中間オブジェクトは、すべての同僚のオブジェクトを保持し、さまざまな部門の調整作業のスケジューリングを担当します*/classメディエーター{private string name;プライベートマップ<文字列、部門>マップ= new Hashmap <String、Department>(); public void add(部門D、文字列名){this.map.put(name、d); } public void Dispatch(部門DPT、文字列のもの、文字列座標){部門D = Map.get(Coordinate); d.handle(dpt.getName()、thing); }}中間モードとプロキシモードの違い:これら2つのモードのモードについて最初に聞いたとき、これら2つのモードは同じモードであると感じましたが、これら2つのモードは完全に異なっていました。プロキシモードは、主に実際のオブジェクトを非表示にし、他のオブジェクトが特定の操作の詳細を知るのを防ぐために使用されました。中間モードは、主に複数のオブジェクトと複数のオブジェクトを複雑に相互作用するために使用されました。これらの相互作用を簡素化するために、ターミネーターモードが見つかりました。