全国旗舰校区

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

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

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

Java常见的设计模式有哪些?Java常用设计模式及应用场景介绍

发布时间:2022-07-22 15:10:00
发布人:syq

  Java常见的设计模式有哪些?设计模式就是设计代码结构,方便开发或者后期调整。学习Java,必须掌握一些常见的设计模式,如单例模式、模板方法、工厂模式、构建器模式、适配器模式等。主要培养常用设计模式和代码提取优化能力,可能涉及6大设计原则和23种设计模式。今天的简介比较集中。接下来我们来看看Java的常见设计模式和应用场景:

Java常见的设计模式有哪些

  1、单例模式

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

  2、模板方法

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

  3、工厂模式

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

  4、原型模式

  在应用中,可能会有一些结构比较复杂的对象,但是需要经常用到。比如这个时候不断的创建这个对象,必然会消耗大量的系统内存。这时候就需要使用原型模式来克隆这个复杂且经常使用的对象。所以原型模式就是使用原型实例来指定要创建的对象的种类,并通过复制这些原型来创建新的对象。主要在创建新对象的成本过高时使用。它的主要优点是简化了新对象的创建过程,提高了效率,而原型模式提供了简化的创建结构。

  5、Builder模式

  描述复杂对象的构造和呈现分离,适用于流程固定但顺序不一定固定的场景。如果需要多次给一个对象的不同属性赋值,可以使用链式调用传递参数,最终生成一个对象。比如策略模式、观察者模式、模板方法模式、foreach中的迭代器模式、spring中ASM的访问者模式、动态代理等都有一些了解。

  6、适配器模式

  在一个应用程序中,可能需要通信两个不同接口的类,可能需要一些中间件在不修改两者的情况下完成连接过程。这个中间件就是适配器。所谓适配器模式,就是将一个类的接口转换成客户端期望的另一个接口。它允许两个原本不兼容的接口无缝连接。适配器作为中间件将目标类和适配器解耦,增加了类的透明度和可重用性。

  7、桥接模式

  如果一个系统可以从多个角度进行分类,每个分类都可能发生变化,那么我们需要做的就是将这些多个角度分开,让它们独立变化,减少耦合它们之间。这种分离过程使用桥接模式。所谓桥接模式,就是将抽象部分和实现部分隔离开来,让它们独立变化。桥接模式将继承关系转化为关联关系,封装变化,完成解耦,减少系统类的数量,减少代码量。

  设计模式的应用场景是什么? Spring 用于在 JavaEE 应用程序中创建 IOC 容器的侦听器基于观察者模式。模板方法用于获取Spring中的FileSystemResource、ClassPathResource等功能相似的类。

  单例模式包括懒惰和饥饿的样式以及不同的变体,工厂设计模式一般设计为单例。项目中一些配置或者引入外部sdk需要创建管理类,或者封装自己的框架时需要使用单例;工厂方法无法预测编码时需要创建哪个类实例。

  以上是对Java常见的设计模式有哪些的绝体介绍,设计模式用于可重用代码,使代码更容易被他人理解,并确保代码的可靠性。设计模式对自己、他人和系统都是双赢的。设计模式使代码编译真正成为工程,成为软件工程的基石。更多关于“Java培训”的问题,欢迎咨询千锋教育在线名师。千锋已有十余年的培训经验,课程大纲更科学更专业,有针对零基础的就业班,有针对想提升技术的好程序员班,高品质课程助力你实现java程序员梦想。

相关文章

什么是PlatformIo?

什么是PlatformIo?

2023-10-14
文件扩展名(后缀名)是什么?

文件扩展名(后缀名)是什么?

2023-10-14
云快照与自动备份有什么区别?

云快照与自动备份有什么区别?

2023-10-14
OKR与自驱力的关系是什么?

OKR与自驱力的关系是什么?

2023-10-14

最新文章

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

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

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

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

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

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

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

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

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