最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

輕松掌握java中介者模式

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

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

特點:

     1、降低了類的復(fù)雜度,將一對多轉(zhuǎn)化成了一對一。

    2、各個類之間的解耦。

    3、符合迪米特原則。

企業(yè)級開發(fā)和常用框架中的應(yīng)用: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, "財務(wù)部");
 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("*******************************************");
 }
}
/**
 *中介者對象,持有所有同事對象,負責調(diào)度各部門協(xié)調(diào)工作 
 */
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é),而中介者模式則主要用戶多對象多對多的復(fù)雜交互,為了簡化這些交互,才有了終結(jié)者模式。

相關(guān)文章

  • Java 二分查找算法的實現(xiàn)

    Java 二分查找算法的實現(xiàn)

    這篇文章主要介紹了Java 如何實現(xiàn)二分查找算法,幫助大家更好的理解和學(xué)習(xí)Java 算法,感興趣的朋友可以了解下
    2020-09-09
  • Java中數(shù)組的定義和使用教程(三)

    Java中數(shù)組的定義和使用教程(三)

    這篇文章主要給大家介紹了關(guān)于Java中數(shù)組的定義和使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Nacos注冊中心的幾種調(diào)用方式詳解

    Nacos注冊中心的幾種調(diào)用方式詳解

    Spring Cloud Alibaba Nacos 作為近幾年最熱門的注冊中心和配置中心,也被國內(nèi)無數(shù)公司所使用,本文就來看下 Nacos 作為注冊中心時,調(diào)用它的接口有幾種方式
    2023-10-10
  • Java使用橋接模式實現(xiàn)開關(guān)和電燈照明功能詳解

    Java使用橋接模式實現(xiàn)開關(guān)和電燈照明功能詳解

    這篇文章主要介紹了Java使用橋接模式實現(xiàn)開關(guān)和電燈照明功能,較為詳細的講述了橋接模式的概念、原理并結(jié)合實例形式分析了Java使用橋接模式實現(xiàn)開關(guān)和電燈照明功能相關(guān)操作步驟與注意事項,需要的朋友可以參考下
    2018-05-05
  • java中transient關(guān)鍵字用法分析

    java中transient關(guān)鍵字用法分析

    這篇文章主要介紹了java中transient關(guān)鍵字用法,以實例形式分析了java中transient關(guān)鍵字的功能及使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • 詳解spring mvc 請求轉(zhuǎn)發(fā)和重定向

    詳解spring mvc 請求轉(zhuǎn)發(fā)和重定向

    這篇文章主要介紹了詳解spring mvc 請求轉(zhuǎn)發(fā)和重定向,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • Java流程控制順序結(jié)構(gòu)原理解析

    Java流程控制順序結(jié)構(gòu)原理解析

    這篇文章主要介紹了Java流程控制順序結(jié)構(gòu)原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • SpringBoot項目防止反編譯的方案

    SpringBoot項目防止反編譯的方案

    最近項目要求部署到其他公司的服務(wù)器上,但是又不想將源碼泄露出去,要求對正式環(huán)境的啟動包進行安全性處理,防止客戶直接通過反編譯工具將代碼反編譯出來,所以本文給大家介紹了SpringBoot項目如何防止反編譯,需要的朋友可以參考下
    2024-01-01
  • JDBC示例代碼

    JDBC示例代碼

    本教程提供了如何創(chuàng)建一個簡單的JDBC應(yīng)用程序的示例。演示如何打開一個數(shù)據(jù)庫連接,執(zhí)行SQL查詢,并顯示結(jié)果
    2014-03-03
  • Java設(shè)計模式中的抽象工廠模式解讀

    Java設(shè)計模式中的抽象工廠模式解讀

    這篇文章主要介紹了Java設(shè)計模式中的抽象工廠模式解讀,抽象工廠模式為創(chuàng)建一組相關(guān)或相互依賴的對象提供一個接口,而且無需指定他們的具體類,需要的朋友可以參考下
    2023-11-11

最新評論

北流市| 万宁市| 定远县| 江津市| 宁蒗| 呼玛县| 仁布县| 简阳市| 宾川县| 呼图壁县| 彭阳县| 乌苏市| 淳化县| 盐池县| 布拖县| 登封市| 高雄市| 吴桥县| 昌平区| 娱乐| 色达县| 桑植县| 锡林浩特市| 奉节县| 上杭县| 安达市| 张家口市| 遵义市| 青冈县| 始兴县| 黑山县| 梅州市| 鄂伦春自治旗| 淳化县| 平南县| 石狮市| 桃园县| 长海县| 莲花县| 屏东县| 陵川县|