欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

輕松掌握java中介者模式

 更新時間:2016年09月29日 11:44:10   作者:斷了聯系  
這篇文章主要幫助大家輕松掌握java中介者模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下

定義:用來降低多個對象和類之間的通信復雜性。中介者模式屬于行為型模式。

特點:

     1、降低了類的復雜度,將一對多轉化成了一對一。

    2、各個類之間的解耦。

    3、符合迪米特原則。

企業(yè)級開發(fā)和常用框架中的應用:mvc模式中的c

具體實例:

public class Demo {

 public static void main(String[] args) {
 Mediator m = new Mediator();
 Department d1 = new Department(m, "開發(fā)部");
 Department d2 = new Department(m, "財務部");
 Department d3 = new Department(m, "策劃部");
 m.add(d1, "dep");
 m.add(d2, "fin");
 m.add(d3, "c");
 d2.apply("手里有一個項目需要開發(fā)", "dep");
 d1.apply("開發(fā)項目需要資金", "fin");
 d1.apply("項目開發(fā)完了,需要策劃發(fā)布", "c");
 d3.apply("發(fā)布會需要資金", "fin");
 }
}

class Department{
 
 private String name;

 private Mediator mediator;
 
 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 apply(String thing,String coordinate){
 System.out.println("我們是"+this.getName()+","+thing+",需要幫助");
 mediator.dispatch(this, thing, coordinate);
 }
 
 public void handle(String name,String thing){
 System.out.println("我們是"+this.getName()+","+name+"需要我們的幫助,我們馬上處理他們的事情");
 System.out.println("*******************************************");
 }
}
/**
 *中介者對象,持有所有同事對象,負責調度各部門協(xié)調工作 
 */
class Mediator{
 private String name;
 
 private Map<String, Department> map = new HashMap<String, Department>();
 
 public void add(Department d,String name){
 this.map.put(name, d);
 }
 
 public void dispatch(Department dpt,String thing,String coordinate){
 Department d = map.get(coordinate);
 d.handle(dpt.getName(),thing);
 }
}

中介者模式和代理模式的區(qū)別:初一聽這兩個模式的模式感覺這兩個模式好像是一個模式,但是這兩個模式卻完全不同,代理模式主要用于隱藏實際對象,不讓別人知道具體的操作細節(jié),而中介者模式則主要用戶多對象多對多的復雜交互,為了簡化這些交互,才有了終結者模式。

相關文章

  • Java矢量隊列Vector使用示例

    Java矢量隊列Vector使用示例

    Vector類實現了一個動態(tài)數組。和ArrayList很相似,但是兩者是不同的Vector是同步訪問的;Vector包含了許多傳統(tǒng)的方法,這些方法不屬于集合框架
    2023-01-01
  • JAVA 數據結構鏈表操作循環(huán)鏈表

    JAVA 數據結構鏈表操作循環(huán)鏈表

    這篇文章主要介紹了JAVA 數據結構鏈表操作循環(huán)鏈表的相關資料,需要的朋友可以參考下
    2016-10-10
  • Java實現簡單的RPC框架的示例代碼

    Java實現簡單的RPC框架的示例代碼

    本篇文章主要介紹了Java實現簡單的RPC框架的示例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • java新手入門——String類詳解

    java新手入門——String類詳解

    在java、C#中,String類是不可變的,對String類的任何改變,都是返回一個新的String類對象。string>是C++標準程序庫中的一個頭文件
    2021-06-06
  • 線程池FutureTask異步執(zhí)行多任務實現詳解

    線程池FutureTask異步執(zhí)行多任務實現詳解

    這篇文章主要為大家介紹了線程池FutureTask異步執(zhí)行多任務實現詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • 深入理解Java中Filter的作用種類及應用場景

    深入理解Java中Filter的作用種類及應用場景

    Filter(過濾器)是Java Web中的一種重要組件,可以對請求和響應進行攔截處理,對數據進行過濾和處理。Filter可以實現許多功能,如:鑒權、日志記錄、字符編碼轉換、數據壓縮、請求重定向等等
    2023-04-04
  • SpringBoot啟動原理深入解析

    SpringBoot啟動原理深入解析

    我們開發(fā)任何一個Spring Boot項目都會用到啟動類,下面這篇文章主要給大家介紹了關于SpringBoot啟動原理解析的相關資料,文中通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-04-04
  • Java中常用緩存Cache機制的實現

    Java中常用緩存Cache機制的實現

    這篇文章主要介紹了Java中常用緩存Cache機制的實現代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • Springcloud sentinel安裝和使用方法解析

    Springcloud sentinel安裝和使用方法解析

    這篇文章主要介紹了Springcloud sentinel安裝和使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-12-12
  • 使用AOP+反射實現自定義Mybatis多表關聯查詢

    使用AOP+反射實現自定義Mybatis多表關聯查詢

    這篇文章主要介紹了使用AOP+反射實現自定義Mybatis多表關聯,目前的需求是增強現有的查詢,使用簡單的注解即可實現多表關聯,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-05-05

最新評論