自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

工作中的設(shè)計(jì)模式 —— 門(mén)面模式

開(kāi)發(fā) 前端
門(mén)面模式也叫外觀模式,是一種結(jié)構(gòu)型設(shè)計(jì)模式,能為程序庫(kù)、框架或其他復(fù)雜類提供一個(gè)簡(jiǎn)單的接口。

[[393868]]

本文轉(zhuǎn)載自微信公眾號(hào)「程序員小航」,作者程序員小航。轉(zhuǎn)載本文請(qǐng)聯(lián)系程序員小航公眾號(hào)。

前言

門(mén)面模式也叫外觀模式,是一種結(jié)構(gòu)型設(shè)計(jì)模式,能為程序庫(kù)、框架或其他復(fù)雜類提供一個(gè)簡(jiǎn)單的接口。

1使用場(chǎng)景

門(mén)面模式可以說(shuō)是在工作中使用非常多的一種設(shè)計(jì)模式了,比如常用的 slf4j。

下面簡(jiǎn)單介紹常用的使用場(chǎng)景:

為遠(yuǎn)程接口設(shè)計(jì)統(tǒng)一入口

比如需要調(diào)用微信支付寶支付,里面一大堆參數(shù),參數(shù)什么也不一樣,這時(shí)候就可以統(tǒng)一封裝一個(gè)接口,然后小伙伴們使用的時(shí)候,只需要調(diào)用封裝的接口就可以了。

也不用擔(dān)心同樣是狀態(tài),這里叫 status,那里叫 orderStatus了。反正對(duì)外都是一個(gè)統(tǒng)一的門(mén)面,你自己定義即可。

好處

統(tǒng)一封裝門(mén)面的好處,就是可以 Mock。

這也是我最近了解到的,之前都是一把嗦,誰(shuí)管 junit。

Mock 就是說(shuō)在 junit 測(cè)試中,使用 @MockBean 注入一個(gè) mock 對(duì)象,然后自己定義返回。

  1. Mockito.when( xxxFacadeService.methodX()).thenReturn(mockBean); 

就是調(diào)用某個(gè)接口的時(shí)候,返回自己 mock 的對(duì)象。

這個(gè)我也是才發(fā)現(xiàn)的,因?yàn)槲以囍褂?@MockBean 注解 Dubbo 接口的對(duì)象,但是并不行。

不過(guò)還是可以變通的,所有的調(diào)用外部接口的地方,不管是 http 還是 dubbo,全部都封裝了門(mén)面,這樣我 mock 自己的門(mén)面接口就 ok 了。

2總結(jié)

在開(kāi)發(fā)中,除了會(huì)封裝很多外部接口為門(mén)面外,也會(huì)把自己的接口封裝為一個(gè)門(mén)面。

也會(huì)有結(jié)合策略模式的使用,或者結(jié)合適配器模式。這些都有很多很多的使用場(chǎng)景,不過(guò)單獨(dú)弄懂一個(gè),后續(xù)遇到就自己擴(kuò)展。

相關(guān)資料

[1] 《深入設(shè)計(jì)模式》:https://refactoringguru.cn/design-patternss

[2] 封面圖:https://refactoringguru.cn/design-patterns/facade

 

責(zé)任編輯:武曉燕 來(lái)源: 程序員小航
相關(guān)推薦

2021-04-14 09:02:22

模式 設(shè)計(jì)建造者

2021-08-11 17:22:11

設(shè)計(jì)模式單例

2022-02-15 22:45:00

前端設(shè)計(jì)模式

2022-11-14 08:44:56

前端門(mén)面模式接口

2021-03-18 15:33:22

設(shè)計(jì)模式外觀

2023-05-06 07:51:22

JavaFacade設(shè)計(jì)模式

2024-02-19 13:11:38

門(mén)面模式系統(tǒng)

2024-12-11 08:20:57

設(shè)計(jì)模式源碼

2021-10-27 17:57:35

設(shè)計(jì)模式場(chǎng)景

2021-06-02 08:17:05

門(mén)面模式設(shè)計(jì)

2012-10-30 09:44:33

敏捷開(kāi)發(fā)

2012-08-30 09:07:33

設(shè)計(jì)模式

2024-07-31 08:12:33

2010-01-21 09:08:53

.NET設(shè)計(jì)模式

2021-04-19 21:25:48

設(shè)計(jì)模式到元

2012-04-10 10:04:26

并行編程

2012-12-25 09:38:41

JavaScript設(shè)計(jì)模式

2011-07-14 14:46:46

設(shè)計(jì)模式

2009-06-29 18:11:40

JSP設(shè)計(jì)模式

2021-02-01 10:01:58

設(shè)計(jì)模式 Java單例模式
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)