全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

请列举出在JDK中几个常用的设计模式?

发布时间:2022-09-20 17:59:34
发布人:qyf

请列举出在JDK中几个常用的设计模式?

  单例模式

  作用:保证类只有一个实例。

  JDK中体现:Runtime类。

  静态工厂模式

  作用:代替构造函数创建对象,方法名比构造函数清晰。

  JDK中体现:Integer.valueOf、Class.forName

  抽象工厂

  作用:创建某一种类的对象。

  JDK中体现:Java.sql包。

  原型模式

  clone();

  原型模式的本质是拷贝原型来创建新的对象,拷贝是比new更快的创建对象的方法,当需要大批量创建新对象而且都是同一个类的对象的时候考虑使用原型模式。

  一般的克隆只是浅拷贝(对象的hash值不一样,但是对象里面的成员变量的hash值是一样的)。

  有些场景需要深拷贝,这时我们就要重写clone方法,以ArrayList为例:

  适配器模式

  作用:使不兼容的接口相容。

  JDK中体现:InputStream、OutputStream。

  装饰器模式

  作用:为类添加新的功能,防止类继承带来的类爆炸。

  JDK中体现:io类、Collections、List。

  外观模式

  作用:封装一组交互类,一直对外提供接口。

  JDK中体现:logging包。

  享元模式

  作用:共享对象、节省内存。

  JDK中体现:Integer.valueOf、String常量池。

  代理模式

  作用:

  (1)透明调用被代理对象,无须知道复杂实现细节;

  (2)增加被代理类的功能;

  JDK中体现:动态代理。

  迭代器模式

  作用:将集合的迭代和集合本身分离。

  JDK中体现:Iterator

  命令模式

  作用:封装操作,使接口一致。

  JDK中体现:Runable、Callable、ThreadPoolExecutor。

相关文章

在目标检测里single-shot和multi-shot的主要区别是什么?

在目标检测里single-shot和multi-shot的主要区别是什么?

2023-10-15
APP安全测试与普通B/S架构的渗透测试有什么区别?

APP安全测试与普通B/S架构的渗透测试有什么区别?

2023-10-15
什么是域控制器?

什么是域控制器?

2023-10-15
图卷积网络和self-attention有什么区别?

图卷积网络和self-attention有什么区别?

2023-10-15

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取