AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

【設計模式】通過蘋果的隔空投送了解中介者模式

來源: 責編: 時間:2023-10-08 07:06:11 282觀看
導讀背景通過隔空投送(Mediator),解決蘋果設備(Component)之間的文件傳輸的問題。它通過一個中心化的服務來協調多個設備間的文件傳輸,這些設備不需要知道對方的具體實現細節,只需要知道如何與這個中心服務交互。模式定義Define

背景

通過隔空投送(Mediator),解決蘋果設備(Component)之間的文件傳輸的問題。AMZ28資訊網——每日最新資訊28at.com

它通過一個中心化的服務來協調多個設備間的文件傳輸,這些設備不需要知道對方的具體實現細節,只需要知道如何與這個中心服務交互。AMZ28資訊網——每日最新資訊28at.com

AMZ28資訊網——每日最新資訊28at.com

模式定義

Define an object that encapsulates how a set of objects interact. Mediator promotes loose coupling by keeping objects from referring to each other explicitly, and it lets you vary their interaction independently.AMZ28資訊網——每日最新資訊28at.com

定義一個對象來封裝一組對象的交互方式。Mediator通過防止對象顯式地相互引用來促進松耦合,并且允許您獨立地改變它們的交互。AMZ28資訊網——每日最新資訊28at.com

模式結構

AMZ28資訊網——每日最新資訊28at.com

模式實現

AMZ28資訊網——每日最新資訊28at.com

1.設備定義

package com.example.designpattern.mediator.device;/** * 蘋果設備接口 * * @author hongcunlin */public interface AppleDevice {    /**     * 發數據     *     * @param data 數據     */    void sendData(String data);    /**     * 接收數據     *     * @param data 數據     */    void receiveData(String data);}

2.設備實現(iPhone、MacBook)

iPhone

package com.example.designpattern.mediator.device.impl;import com.example.designpattern.mediator.device.AppleDevice;import org.springframework.stereotype.Component;/** * 手機 * * @author hongcunlin */@Component("iPhoneDevice")public class IPhoneDeviceImpl implements AppleDevice {    @Override    public void sendData(String data) {        System.out.println("iPhone發送數據:" + data);    }    @Override    public void receiveData(String data) {        System.out.println("iPhone接收數據" + data);    }}

MacBook

package com.example.designpattern.mediator.device.impl;import com.example.designpattern.mediator.device.AppleDevice;import org.springframework.stereotype.Component;/** * 筆記本電腦 * * @author hongcunlin */@Component("macBookDevice")public class MacBookDeviceImpl implements AppleDevice {    @Override    public void sendData(String data) {        System.out.println("MacBook發送數據:" + data);    }    @Override    public void receiveData(String data) {        System.out.println("MacBook接收數據:" + data);    }}

3.中介者定義

package com.example.designpattern.mediator.mediator;/** * 中介 * * @author hongcunlin */public interface AirDropMediator {    /**     * 隔空投放     *     * @param data 數據     */    void drop(String data);}

4.中介者實現

package com.example.designpattern.mediator.mediator.impl;import com.example.designpattern.mediator.device.AppleDevice;import com.example.designpattern.mediator.mediator.AirDropMediator;import lombok.AllArgsConstructor;import lombok.Setter;/** * 中介實現 * * @author hongcunlin */@Setter@AllArgsConstructorpublic class AirDropMediatorImpl implements AirDropMediator {    /**     * 發送方     */    private AppleDevice sender;    /**     * 接收方     */    private AppleDevice receiver;    @Override    public void drop(String data) {        sender.sendData(data);        receiver.receiveData(data);    }}

5.測試

package com.example.designpattern.mediator;import com.example.designpattern.mediator.device.AppleDevice;import com.example.designpattern.mediator.mediator.AirDropMediator;import com.example.designpattern.mediator.mediator.impl.AirDropMediatorImpl;import org.junit.jupiter.api.Test;import org.springframework.boot.test.context.SpringBootTest;import javax.annotation.Resource;/** * 中介者模式測試 * * @author hongcunlin */@SpringBootTestpublic class DesignPatternTest {    /**     * iPhone設備     */    @Resource(name = "iPhoneDevice")    private AppleDevice iPhoneDevice;    /**     * MacBook設備     */    @Resource(name = "macBookDevice")    private AppleDevice macBookDevice;    @Test    public void test() {        // 中介者        AirDropMediator airDropMediator = new AirDropMediatorImpl(iPhoneDevice, macBookDevice);        // 隔空投送        airDropMediator.drop("iPhone上的信息");    }}

通過iPhone給MacBook發送數據AMZ28資訊網——每日最新資訊28at.com

AMZ28資訊網——每日最新資訊28at.com

測試時的結果是符合預期的AMZ28資訊網——每日最新資訊28at.com

回顧

本文通過蘋果的隔空投送AirDrop,抽象出中介者模式的實現。同時,不同于傳統說教,本文是基于企業開發必用的框架Spring,貼近實際開發。AMZ28資訊網——每日最新資訊28at.com

中介者模式在實際開發中,還是挺少見的,特別是在當今的分布式微服務架構時代,如果涉及不同的領域的,一般都進行了服務拆分了,然后彼此通過RPC聯系,或者退一步講,RPC框架做的事情,算是中介者吧。AMZ28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-12373-0.html【設計模式】通過蘋果的隔空投送了解中介者模式

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 搭建程序員自己的在線工具庫 it-tools

下一篇: 【設計模式】通過游戲存檔了解備忘錄模式

標簽:
  • 熱門焦點
  • 2023年Q2用戶偏好榜:12+256G版本成新主流

    3月份的性能榜、性價比榜和好評榜之后,就要輪到2023年的第二季度偏好榜了,上半年的新機潮已經過去,最明顯的肯定就是大內存和存儲的機型了,另外部分中端機也取消了屏幕塑料支架
  • 6月iOS設備性能榜:M2穩居榜首 A系列只能等一手3nm來救

    沒有新品發布,自然iOS設備性能榜的上榜設備就沒有什么更替,僅僅只有跑分變化而產生的排名變動,畢竟蘋果新品的發布節奏就是這樣的,一年下來也就幾個移動端新品,不會像安卓廠商,一
  • 服務存儲設計模式:Cache-Aside模式

    Cache-Aside模式一種常用的緩存方式,通常是把數據從主存儲加載到KV緩存中,加速后續的訪問。在存在重復度的場景,Cache-Aside可以提升服務性能,降低底層存儲的壓力,缺點是緩存和底
  • 每天一道面試題-CPU偽共享

    前言:了不起:又到了每天一到面試題的時候了!學弟,最近學習的怎么樣啊 了不起學弟:最近學習的還不錯,每天都在學習,每天都在進步! 了不起:那你最近學習的什么呢? 了不起學弟:最近在學習C
  • 大廠卷向扁平化

    來源:新熵作者丨南枝 編輯丨月見大廠職級不香了。俗話說,兵無常勢,水無常形,互聯網企業調整職級體系并不稀奇。7月13日,淘寶天貓集團啟動了近年來最大的人力制度改革,目前已形成一
  • 華為發布HarmonyOS 4:更好玩、更流暢、更安全

    在8月4日的華為開發者大會2023(HDC.Together)大會上,HarmonyOS 4正式發布。自2019年發布以來,HarmonyOS一直以用戶為中心,經歷四年多的發展HarmonyOS已
  • OPPO K11采用全方位護眼屏:三大護眼能力減輕視覺疲勞

    日前OPPO官方宣布,全新的OPPO K11將于7月25日正式發布,將主打旗艦影像,和同檔位競品相比,其最大的賣點就是將配備索尼IMX890主攝,堪稱是2000檔位影像表
  • 質感不錯!OPPO K11渲染圖曝光:旗艦IMX890傳感器首次下放

    一直以來,OPPO K系列機型都保持著較為均衡的產品體驗,歷來都是2K價位的明星機型,去年推出的OPPO K10和OPPO K10 Pro兩款機型憑借各自的出色配置,堪稱有
  • 世界人工智能大會國際日開幕式活動在世博展覽館開啟

    30日上午,世界人工智能大會國際日開幕式活動在世博展覽館開啟,聚集國際城市代表、重量級院士專家、國際創新企業代表,共同打造人工智能交流平臺。上海市副市
Top