本文转载自微信公众号「程序员小航」,作者程序员小航。转载本文请联系程序员小航公众号。
城阳网站建设公司成都创新互联公司,城阳网站设计制作,有大型网站制作公司丰富经验。已为城阳成百上千家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的城阳做网站的公司定做!
门面模式也叫外观模式,是一种结构型设计模式,能为程序库、框架或其他复杂类提供一个简单的接口。
门面模式可以说是在工作中使用非常多的一种设计模式了,比如常用的 slf4j。
下面简单介绍常用的使用场景:
为远程接口设计统一入口
比如需要调用微信支付宝支付,里面一大堆参数,参数什么也不一样,这时候就可以统一封装一个接口,然后小伙伴们使用的时候,只需要调用封装的接口就可以了。
也不用担心同样是状态,这里叫 status,那里叫 orderStatus了。反正对外都是一个统一的门面,你自己定义即可。
好处
统一封装门面的好处,就是可以 Mock。
这也是我最近了解到的,之前都是一把嗦,谁管 junit。
Mock 就是说在 junit 测试中,使用 @MockBean 注入一个 mock 对象,然后自己定义返回。
- Mockito.when( xxxFacadeService.methodX()).thenReturn(mockBean);
就是调用某个接口的时候,返回自己 mock 的对象。
这个我也是才发现的,因为我试着使用 @MockBean 注解 Dubbo 接口的对象,但是并不行。
不过还是可以变通的,所有的调用外部接口的地方,不管是 http 还是 dubbo,全部都封装了门面,这样我 mock 自己的门面接口就 ok 了。
在开发中,除了会封装很多外部接口为门面外,也会把自己的接口封装为一个门面。
也会有结合策略模式的使用,或者结合适配器模式。这些都有很多很多的使用场景,不过单独弄懂一个,后续遇到就自己扩展。
相关资料
[1] 《深入设计模式》:https://refactoringguru.cn/design-patternss
[2] 封面图:https://refactoringguru.cn/design-patterns/facade
网页标题:工作中的设计模式——门面模式
当前链接:http://www.shufengxianlan.com/qtweb/news46/80896.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联