面试官:设计模式是什么?-LMLPHP


前言

今天我将头发梳成大人样,穿上一身帅气西装,并不是我闲的某个地方疼了,而是今天我又要去面试了。

面试官:设计模式是什么?-LMLPHP

七月的京城最高温度已经接近40摄氏度,但还是不能够捂热我那被面试官拒绝后凉透的心。顶着炎炎烈日我来到了约定的面试地点,看着面前这宏伟的建筑,感觉这次面试又稳了(稳挂)。

面试官:设计模式是什么?-LMLPHP

进入大厦被接待人员领到指定的会议室,接待人员说他们李总正在开会,一会过来给我面试,顺便给我倒了一杯水,让我稍作歇息。

就在我想着一会怎么跟面试官吹牛的时候我听见了“咚咚咚”高跟鞋的声音正在由远及近的传来,我缓慢的转动着手里的纸杯,根据声音专注的分析着:“女、175、98斤、粉色”,“咔哒”一声门开了,我扭头看向门口心里窃喜,没有什么可以瞒过我的耳朵,如果有那就是上学时老师讲的每一节课。

面试官:设计模式是什么?-LMLPHP

一、面试

面试官:我看你简历上写的精通设计模式,那你能说一下设计模式是什么吗?

我:我的理解设计模式就是一些模板,在我们开发程序的时候我们可以根据不同的业务场景选择使用不同的模板来开发,这样就不需要我们自己重新设计一套东西了,省时省力。

面试官:设计模式是软件领域首先提出来的吗?

我:并不是软件领域首先提出的,设计模式起源于建筑领域,他们将前人经验进行总结,然后为后人直接提供成熟的解决方案。

面试官:那你说一下设计模式的定义吧!

我:设计模式是在特定环境下为解决某一通用软件设计问题提供的一套定制的解决方案,该方案描述了对象和类之间的相互作用。

面试官:设计模式可以分为几类呢,分别是什么?

我:设计模式可以分为三类,分别是创建型、结构型和行为型。

面试官:说了这么多,那设计模式有哪些优点呢?

我:设计模式融合了前辈的很多经验,并且总结成以一定标准的形式提供给开发人员使用,这样开发人员可以更加快速、成熟的开发出符合要求的系统。

面试官:那你知道什么是面向对象吗?

我:知道呀,就是面向你呗(挑逗ing)

面试官:别贫,面试通过你才有资格贫,说一下面向对象设计有哪些原则吧

我:面向对象有七个设计原则,分别是单一职责原则、开闭原则、里氏代换原则、依赖倒转原则、接口隔离原则、合成复用原则、迪米特法则。

面试官:能详细介绍一下这七个设计原则吗?

单一职责原则:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。

开闭原则:软件实体应当对扩展开放,对修改关闭。

里氏代换原则:所有引用基类的地方必须能透明地使用其子类的对象。

依赖倒转原则:高层模块不应该依赖低层模块,它们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象。

接口隔离原则:客户端不应该依赖那些它不需要的接口。

合成复用原则:优先使用对象组合,而不是通过继承来达到复用的目的。

迪米特法则:每一个软件单位对其他单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。

面试官:回答的非常好,你还有什么想问我的吗?

我:有,我听力非常好,我刚刚听出来有粉色的存在,请问我听对否?

面试官:哎呀~流氓。。。

二、总结

这里的相关内容还没有整理完毕,文章后面持续更新,建议收藏。

文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。

如果觉得我的文章还不错的话就点个赞吧,另外可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】更有我为大家准备的福利哟!回复【项目】有我为大家准备的一些项目源码。回复【简历模板】有我为大家准备的简历模板。

07-13 07:47