新聞中心
本文轉載自微信公眾號「程序員小航」,作者程序員小航。轉載本文請聯(lián)系程序員小航公眾號。

城陽網(wǎng)站建設公司成都創(chuàng)新互聯(lián)公司,城陽網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為城陽成百上千家提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\成都外貿網(wǎng)站制作要多少錢,請找那個售后服務好的城陽做網(wǎng)站的公司定做!
前言
門面模式也叫外觀模式,是一種結構型設計模式,能為程序庫、框架或其他復雜類提供一個簡單的接口。
1使用場景
門面模式可以說是在工作中使用非常多的一種設計模式了,比如常用的 slf4j。
下面簡單介紹常用的使用場景:
為遠程接口設計統(tǒng)一入口
比如需要調用微信支付寶支付,里面一大堆參數(shù),參數(shù)什么也不一樣,這時候就可以統(tǒng)一封裝一個接口,然后小伙伴們使用的時候,只需要調用封裝的接口就可以了。
也不用擔心同樣是狀態(tài),這里叫 status,那里叫 orderStatus了。反正對外都是一個統(tǒng)一的門面,你自己定義即可。
好處
統(tǒng)一封裝門面的好處,就是可以 Mock。
這也是我最近了解到的,之前都是一把嗦,誰管 junit。
Mock 就是說在 junit 測試中,使用 @MockBean 注入一個 mock 對象,然后自己定義返回。
- Mockito.when( xxxFacadeService.methodX()).thenReturn(mockBean);
就是調用某個接口的時候,返回自己 mock 的對象。
這個我也是才發(fā)現(xiàn)的,因為我試著使用 @MockBean 注解 Dubbo 接口的對象,但是并不行。
不過還是可以變通的,所有的調用外部接口的地方,不管是 http 還是 dubbo,全部都封裝了門面,這樣我 mock 自己的門面接口就 ok 了。
2總結
在開發(fā)中,除了會封裝很多外部接口為門面外,也會把自己的接口封裝為一個門面。
也會有結合策略模式的使用,或者結合適配器模式。這些都有很多很多的使用場景,不過單獨弄懂一個,后續(xù)遇到就自己擴展。
相關資料
[1] 《深入設計模式》:https://refactoringguru.cn/design-patternss
[2] 封面圖:https://refactoringguru.cn/design-patterns/facade
分享標題:工作中的設計模式——門面模式
分享鏈接:http://www.5511xx.com/article/dpjgihs.html


咨詢
建站咨詢
