java中常考的设计模式有哪些?包括哪几种?

BSO 2020-12-03 16:01:03 java常见问答 8326

其实大家学习java的最终目的无外乎就是通过这门技术获得更好的工作和更高的薪资。所以大家在面试的时候经常是会遇到很多的问题。今天就来简述一下有关设计模式的内容,一起来看看吧。

首先为大家说一下一些主要的模式。

1.单例模式:

一个类只有一个实例

2.观察者模式

一对多的依赖关系,让多个观察者同时监听某一个主题帮助。当该对象发生变化时,会通知所有观察者,使他们的状态自动发生变化。

3.代理模式

就是为其他对象提供一种代理以控制对这个对象的访问。

静态代理在使用时,需要定义接口或者父类,被代理对象(目标对象)与代理对象(Proxy)一起实现相同的接口或者是继承相同父类。

代理模式(通过代理静默地解决一些业务无关的问题,比如远程、安全、事务、日志、资源关闭……让应用开发者可以只关心他的业务)

静态代理:事先写好代理类,可以手工编写,也可以用工具生成。缺点是每个业务类都要对应一个代理类,非常不灵活。

动态代理:运行时自动生成代理对象。缺点是生成代理代理对象和调用代理方法都要额外花费时间。

JDK动态代理:基于Java反射机制实现,必须要实现了接口的业务类才能用这种办法生成代理对象。新版本也开始结合ASM机制。

cglib动态代理:基于ASM机制实现,通过生成业务类的子类作为代理类。

Java 发射机制的常见应用:动态代理(AOP、RPC)、提供第三方开发者扩展能力(Servlet容器,JDBC连接)、第三方组件创建对象(DI)

(动态)代理模式主要涉及三个要素:

其一:抽象类接口

其二:被代理类(具体实现抽象接口的类)

其三:动态代理类:实际调用被代理类的方法和属性的类

4.工厂模式

工厂模式是用来创建对象的一种最常用的设计模式,我们不暴露创建对象的具体逻辑,而是将逻辑封装在一个函数中,那么这个函数就可以被视为一个工厂。

5.装饰器模式

允许向一个现有的对象添加新的功能,同时又不改变其结构. 不修改原来代码的情况下,动态地给一个对象添加一些额外的职责和功能

可以看出这些模式都还是比较简单的,但是这也是一些常见的Java面试题,需要大家花费一定的时间去了解一下。如果你想要了解更多java知识,敬请关注奇Q工具网。

推荐阅读:

java工厂模式面试题一般有哪些?java面试题

java设计模式面试题一般会有什么?

java常见面试题:OSI 的七层模型都有哪些?