2021最新版的设计模式面试题有哪些

发布时间:2021-10-12 14:23:57 作者:iii
来源:亿速云 阅读:138

这篇文章主要介绍“2021最新版的设计模式面试题有哪些”,在日常操作中,相信很多人在2021最新版的设计模式面试题有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”2021最新版的设计模式面试题有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1.什么是设计模式

设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。

2.为什么要学习设计模式

3.设计模式分类

2021最新版的设计模式面试题有哪些

4.设计模式的六大原则

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

5.单例模式

5.1 什么是单例

保证一个类只有一个实例,并且提供一个访问该全局访问点

5.2 哪些地方用到了单例模式

  1. 网站的计数器,一般也是采用单例模式实现,否则难以同步。

  2. 应用程序的日志应用,一般都是单例模式实现,只有一个实例去操作才好,否则内容不好追加显示。

  3. 多线程的线程池的设计一般也是采用单例模式,因为线程池要方便对池中的线程进行控制

  4. Windows的(任务管理器)就是很典型的单例模式,他不能打开俩个

  5. windows的(回收站)也是典型的单例应用。在整个系统运行过程中,回收站只维护一个实例。

5.3 单例优缺点

2021最新版的设计模式面试题有哪些

5.4 单例模式使用注意事项:

  1. 使用时不能用反射模式创建单例,否则会实例化一个新的对象

  2. 使用懒单例模式时注意线程安全问题

  3. 饿单例模式和懒单例模式构造方法都是私有的,因而是不能被继承的,有些单例模式可以被继承(如登记式模式)

5.5 单例防止反射漏洞攻击

private static boolean flag = false;
private Singleton() {
if (flag == false) {
flag = !flag;
} else {
throw new RuntimeException("单例模式被侵犯!");
}
}
public static void main(String[] args) {
}

5.6 如何选择单例创建方式

如果不需要延迟加载单例,可以使用枚举或者饿汉式,相对来说枚举性好于饿汉式。 如果需要延 迟加载,可以使用静态内部类或者懒汉式,相对来说静态内部类好于懒韩式。 最好使用饿汉式

5.7 单例创建方式

2021最新版的设计模式面试题有哪些

1.饿汉式

  1. 饿汉式:类初始化时,会立即加载该对象,线程天生安全,调用效率高。

package com.lijie;
//饿汉式
public class Demo1 {
// 类初始化时,会立即加载该对象,线程安全,调用效率高
private static Demo1 demo1 = new Demo1();
private Demo1() {
System.out.println("私有Demo1构造参数初始化");
}
public static Demo1 getInstance() {
return demo1;
}
public static void main(String[] args) {
Demo1 s1 = Demo1.getInstance();
Demo1 s2 = Demo1.getInstance();
System.out.println(s1 == s2);
}
}

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

6.工厂模式

6.1 什么是工厂模式

它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。实现了创建者和调用者分离,工厂模式分为简单工厂、工厂方法、抽象工厂模式

6.2 工厂模式好处

6.3 为什么要学习工厂设计模式

不知道你们面试题问到过源码没有,你知道Spring的源码吗,MyBatis的源码吗,等等等 如果你想学习很多框架的源码,或者你想自己开发自己的框架,就必须先掌握设计模式(工厂设计模式用的是非常非常广泛的)

6.4 Spring开发中的工厂设计模式

2021最新版的设计模式面试题有哪些

6.5 工厂模式分类

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

7.代理模式

7.1 什么是代理模式

7.2 代理模式应用场景

Spring AOP、日志打印、异常处理、事务控制、权限控制等

7.3 代理的分类

7.4 三种代理的区别

1.静态代理:简单代理模式,是动态代理的理论基础。常见使用在代理模式

  1. jdk动态代理:使用反射完成代理。需要有顶层接口才能使用,常见是mybatis的mapper文件是代理。

  2. cglib动态代理:也是使用反射完成代理,可以直接代理类(jdk动态代理不行),使用字节码技术,不能对 fifinal类进行继承。(需要导入jar包)

7.5 用代码演示三种代理

7.5.1静态代理

什么是静态代理

由程序员创建或工具生成代理类的源码,再编译代理类。所谓静态也就是在程序运行前就已经存在代理类的字节码文件,代理类和委托类的关系在运行前就确定了。

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

8.建造者模式

8.1 什么是建造者模式

2021最新版的设计模式面试题有哪些

8.2 建造者模式的使用场景

2021最新版的设计模式面试题有哪些

8.3 代码案例

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

9.模板方法模式

9.1 什么是模板方法

模板方法模式:定义一个操作中的算法骨架(父类),而将一些步骤延迟到子类中。 模板方法使得子类可以不改变一个算法的结构来重定义该算法的

9.2 什么时候使用模板方法

实现一些操作时,整体步骤很固定,但是呢。就是其中一小部分需要改变,这时候可以使用模板方法模式,将容易变的部分抽象出来,供子类实现。

9.3 实际开发中应用场景哪里用到了模板方法

9.4 现实生活中的模板方法

2021最新版的设计模式面试题有哪些

9.5 代码实现模板方法模式

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

10.外观模式

10.1 什么是外观模式

10.2 外观模式例子

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

11.原型模式

11.1 什么是原型模式

11.2 原型模式的应用场景

2021最新版的设计模式面试题有哪些

11.3 原型模式的使用方式

2021最新版的设计模式面试题有哪些

11.4 代码演示

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

12.策略模式

12.1 什么是策略模式

12.2 策略模式应用场景

2021最新版的设计模式面试题有哪些

12.3 策略模式的优点和缺点

优点:

1、算法可以自由切换。

2、避免使用多重条件判断。

3、扩展性非常良好。

缺点:

1、策略类会增多。

2、所有策略类都需要对外暴露。

12.4 代码演示

模拟支付模块有微信支付、支付宝支付、银联支付

  1. 定义抽象的公共方法

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

13.观察者模式

13.1 什么是观察者模式

13.2 模式的职责

观察者模式主要用于1对N的通知。当一个对象的状态变化时,他需要及时告知一系列对象,令他们做出相应。

实现有两种方式:

  1. 推:每次都会把通知以广播的方式发送给所有观察者,所有的观察者只能被动接收。

  2. 拉:观察者只要知道有情况即可,至于什么时候获取内容,获取什么内容,都可以自主决定。

13.3 观察者模式应用场景

  1. 关联行为场景,需要注意的是,关联行为是可拆分的,而不是“组合”关系。事件多级触发场景。

  2. 跨系统的消息交换场景,如消息队列、事件总线的处理机制。

13.4 代码实现观察者模式

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

2021最新版的设计模式面试题有哪些

到此,关于“2021最新版的设计模式面试题有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. 2021有哪些最新版的Dubbo面试题
  2. 2021有哪些最新版的Elasticsearch面试题

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:PHP如何实现不用第三变量交换2个变量的值

下一篇:怎么简单入门Kubernetes Ingress

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》