工作中的设计模式 —— 门面模式

开发 前端
门面模式也叫外观模式,是一种结构型设计模式,能为程序库、框架或其他复杂类提供一个简单的接口。

[[393868]]

本文转载自微信公众号「程序员小航」,作者程序员小航。转载本文请联系程序员小航公众号。

前言

门面模式也叫外观模式,是一种结构型设计模式,能为程序库、框架或其他复杂类提供一个简单的接口。

1使用场景

门面模式可以说是在工作中使用非常多的一种设计模式了,比如常用的 slf4j。

下面简单介绍常用的使用场景:

为远程接口设计统一入口

比如需要调用微信支付宝支付,里面一大堆参数,参数什么也不一样,这时候就可以统一封装一个接口,然后小伙伴们使用的时候,只需要调用封装的接口就可以了。

也不用担心同样是状态,这里叫 status,那里叫 orderStatus了。反正对外都是一个统一的门面,你自己定义即可。

好处

统一封装门面的好处,就是可以 Mock。

这也是我最近了解到的,之前都是一把嗦,谁管 junit。

Mock 就是说在 junit 测试中,使用 @MockBean 注入一个 mock 对象,然后自己定义返回。

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

就是调用某个接口的时候,返回自己 mock 的对象。

这个我也是才发现的,因为我试着使用 @MockBean 注解 Dubbo 接口的对象,但是并不行。

不过还是可以变通的,所有的调用外部接口的地方,不管是 http 还是 dubbo,全部都封装了门面,这样我 mock 自己的门面接口就 ok 了。

2总结

在开发中,除了会封装很多外部接口为门面外,也会把自己的接口封装为一个门面。

也会有结合策略模式的使用,或者结合适配器模式。这些都有很多很多的使用场景,不过单独弄懂一个,后续遇到就自己扩展。

相关资料

[1] 《深入设计模式》:https://refactoringguru.cn/design-patternss

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

 

责任编辑:武晓燕 来源: 程序员小航
相关推荐

2021-04-14 09:02:22

模式 设计建造者

2021-08-11 17:22:11

设计模式单例

2022-02-15 22:45:00

前端设计模式

2022-11-14 08:44:56

前端门面模式接口

2021-03-18 15:33:22

设计模式外观

2023-05-06 07:51:22

JavaFacade设计模式

2024-02-19 13:11:38

门面模式系统

2021-10-27 17:57:35

设计模式场景

2021-06-02 08:17:05

门面模式设计

2012-10-30 09:44:33

敏捷开发

2012-08-30 09:07:33

设计模式

2010-01-21 09:08:53

.NET设计模式

2021-04-19 21:25:48

设计模式到元

2009-06-29 18:11:40

JSP设计模式

2011-07-14 14:46:46

设计模式

2012-04-10 10:04:26

并行编程

2012-12-25 09:38:41

JavaScript设计模式

2021-02-01 10:01:58

设计模式 Java单例模式

2023-11-20 08:54:38

2021-07-15 08:12:31

体系感面试逻辑思维
点赞
收藏

51CTO技术栈公众号