阿里面试官:谈谈你知道的设计模式

503 阅读3分钟

大家好,我是你们的间歇性热血🔥、持续性沙雕🌟小奕😈。如果喜欢我的文章,欢迎点赞 👍 关注 ➕;加我微信:XiaoYi_Flying,邀你进粉丝群,一起交流Java后端技术,相互成长,成为更优秀的🐒~

前阵子猎豹养成更新完了设计模式-基本版(应用版会在下季度更新,预计3月份开始,先更新猎豹其它模块)详细介绍了13种设计模式每个设计模式的原则定义,实现以及优缺点并在猎豹代码中编码体现。

image.png

y1s1,如今不会设计模式使用的java开发基本已经找不到工作了,设计模式已经在面试考核要素中的占比无疑中是必考的,包括博主在面试的时候经常也考核,他已经是很多优秀代码,组件抽象的精华提取,我们只是站在前人总结的肩膀上编码,可以抽象出很多可重复利用的解决方案。更好地利用于系统的维护和稳定性上。

回到主题,面试官问你谈谈你知道的设计模式,这时候大多数人的回答是这样的单例模式,工厂模式,策略模式..然后就没有然后了。稍微好的一点回答就是,首先设计模式分为好几类,有创建型模式,结构性模式,行为性模式,像单例模式,构造器模式这种就是创建型模式,代理、适配器模式就是结构性模式,命令、策略模式就是行为性模式。ok,能回答成这样,相信面试官已经心里认为你是有一定的理解了。但是一个优秀的候选人的回答绝非如此,这里小奕教你们如何天花板式回答这个问题,给爷卷!

首先,碰到此问题,或者变相问题你对设计模式是怎么理解的?为什么需要设计模式?诸如此类的问题,回答基本都可以按照这个思路去回答。

天花板回答:首先设计模式其实是一种规范,是经过了大量的总结出来的方法论,抽象出来的很多可重复利用的解决方案,它在分类上可以大致分为三类,创建型、结构型、行为型设计模式,为什么是这样分类呢,他的依据是比如创建型,它是将对象的创建这个过程 碰到的各种问题的总结,比如工厂模式、构建器模式、单例模式,而结构型是将类与类之间关系联系碰到的问题的总结,比如适配器模式,装饰器模式,组合模式等,最后行为型模式是解决类和实例之间交互碰到的问题的总结,比如策略模式、解释器模式、命令模式等。

因为面向对象设计就是围绕类和实例(对象)两个东东进行玩的,创建型解决实例的创建对象的生成,结构型解决类和类之间联系,行为型解决类和实例(对象)的协同委托关系。所以这三类分类是有道理的,正好两点三线可以解决面向对象设计的全部问题。看到这里,巧妙吧!知其然知其所以然是我们追求的东西。

好了,这是开篇,后续会大量更新一些类似这样的短文,介绍Java核心面试相关内容,也请粉丝可以关注这个专栏的动态 Java核心&面试