vlambda博客
学习文章列表

Java面试 | Java常用的设计模式有哪些?


设计模式是呗编程者总结出来的一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验。掌握几种常用的设计模式,对于Java应聘者来说十分重要,比如单例模式、工厂模式、建造者模式等等,接下来就来简单介绍一下这几种常见的设计模式和它们的应用场景。


(1)考察目标

考官主要是对一些常用设计模式和代码抽取优化能力的考核,问题可能涉及6大设计原则及23种设计模式。

(2)题目分析

比较熟悉的有:

单例模式:

保证一个类仅有一个实例,并提供一个全局访问点,比如一些配置文件或者管理类可以设计为单例,我们常用的线程池也是单例的。

模板方法:

在定义好的算法骨架下,允许子类为一个或多个步骤提供实现,一次性实现算法的不变部分,将可变部分留给子类实现,当子类实现代码逻辑雷同时,可以使用此设计模式。

工厂模式:创建对象需要大量的重复代码时,通过子类实现方法来创建对象。如Spring中通过工厂模式将创建对象的任务交给容器管理。

建造者模式:

讲复杂对象的构建和表示分离,适用于流程固定,但是顺序不一定固定的场景。如需要给一个对象多次给不同的属性赋值,可以使用链式调用传参,最后生成对象。

另外,如策略模式,观察者模式,模板方法模式,foreach中的迭代器模式,spring 中ASM的访问者模式,动态代理等都有一些了解。

(3)应用场景

JavaEE应用中,Spring用于创建IOC容器的监听器就是基于观察者模式的。

Spring中获取FileSystemResource和ClassPathResource等功能雷同的类时使用模板方法。

单例模式:包含懒汉饿汉式以及不同的变种,工厂类设计模式一般也设计为单例。项目中的一些配置,或者引入外部的sdk需要创建管理类,或者封装自己的框架时,需要用到单例

工厂方法:在编码时不能预见需要创建哪种类的实例。

(4)总结

本题主要考察的是:

1)常用设计模式

2)代码抽取优化能力


来源:传智教育


3月资源上新:


回复【查重】领取免费查重券

回复【0911】获取2020Java入门资源

回复【0826】获取Redis入门到精通视频资源

回复【0525】获取C语言资源

回复【0908】获取前端面试宝典

回复【1210】获取软件测试资源

回复【应届生】获取简历模板