博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试刷题14:介绍一下你工作中用到的设计模式?
阅读量:4210 次
发布时间:2019-05-26

本文共 1069 字,大约阅读时间需要 3 分钟。

image.png

那些被时间沉淀下来的最贱时间,就是设计模式,它有利于提高沟通和设计的效率和质量。
我是李福春,我在准备面试,今天的问题是:
工作中你用到了哪些设计模式?
**分析:**
这个问题比较open, 可以结合以往项目经历中用到的设计模式,挑选2个左右的例子出来讲解,讲讲为什么要使用设计模式,带来了哪些优点和不便。
如果实在找不出来,可以结合jdk和spring,每个挑一两个地方来讲2种左右的设计模式,相信面试官也会比较满意。
**我的回答:**
设计模式是程序员在设计过程中多年的最佳实践沉淀,可以提高工程师之间研发质量,沟通效率。
我在X游戏接入平台中使用了模板方法模式,场景:研发的游戏需要推向不同的渠道,每个渠道的用户登录和充值接口的实现都不太一样,而X游戏平台作为一个游戏接入不同渠道的服务平台需要保证游戏接入的一致性,以及消除到不同渠道的差异性。
使用模板方法的好处:
  1. 固定了游戏接入的流程:都有登录,充值接入;
  2. 解耦了协议和实现:每个渠道按照对应的对接协议差别的接入,在上层抹掉差差异。
  3. 扩展性更好;可以轻松的增加新渠道;
  4. 可以更灵活处理游戏接入;

我在优化登录代码的过程中,使用了观察者模式。比如可以使用Spring的事件机制或者guava提供的EventBus;
之前的登录代码是面条式的,一行代码处理一个对应的逻辑,比如,登录完成之后,记录日志,通知积分服务增加积分,通知统计服务增加登录次数,变更日活;
使用观者模式之后,发一个登录成功的消息,在监听者中处理不同的逻辑操作。简化了代码,可维护性,可扩展性得到了提高。
最后可以盘点一下设计模式的分类和列举。如本篇的title图。

jdk中用到的设计模式盘点

装饰器模式:java.io中的流处理;
建造者模式:Http2/client的构建;
单例模式:  Runtime类, 单例模式主要在高并发的情况下,需要加入双检锁,或者直接使用枚举单例的方式。

spring中常用设计模式盘点

工厂模式: BeanFactory, ApplicationContext中的对象创建;
观察者模式: 各种事件的发布和通知
模板模式: JdbcTemplate
AOP: 综合了代理,装饰器,适配器模式

小结

本篇按照我的经验回答了工作中的设计模式例子,同时延伸到设计模式的分类和列举,如果工作中实在想不出来用到了哪些设计模式, 可以以jdk,spring中使用到的设计模式为例剖析一下设计模式的使用以及带来的好处。

image.png

原创不易,转载请注明出处,让我们互通有无,共同进步,欢迎多沟通交流

你可能感兴趣的文章
视频质量评估算法 DVQA 正式开源
查看>>
在中国提供了60亿次服务的疫情模块向世界开源 腾讯抗疫科技输出海外
查看>>
在中国提供了60亿次服务的疫情模块向世界开源
查看>>
世界卫生组织与腾讯加深合作 新冠肺炎AI自查助手全球开源
查看>>
Hibernate 中get, load 区别
查看>>
java反射详解
查看>>
JPA 注解
查看>>
JQuery 简介
查看>>
Java创建对象的方法
查看>>
Extjs自定义组件
查看>>
TreeGrid 异步加载节点
查看>>
Struts2 标签库讲解
查看>>
Google Web工具包 GWT
查看>>
材料与工程学科相关软件
查看>>
windows 下AdNDP 安装使用
查看>>
Project 2013项目管理教程(1):项目管理概述及预备
查看>>
ssh客户端后台运行
查看>>
哥去求职,才说了一句话考官就让我出去
查看>>
【React Native】把现代web科技带给移动开发者(一)
查看>>
【GoLang】Web工作方式
查看>>