在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
Java常用设计模式有哪些?设计模式是设计代码结构,方便开发或后期调整,学习Java必须要掌握一些常用设计模式,如单例模式、模板方法、工厂模式、建造者模式、适配器模式等。主要培养常用设计模式和代码抽取优化能力,可能涉及6大设计原则及23种设计模式,今天简单介绍集中。
设计模式是被编程者总结出来的一套被反复使用的、多数人知晓的、经过分类编目的代码设计经验。掌握常用的设计模式对于Java应聘者来说十分重要,如单例模式、工厂模式、建造者模式等。接下来具体料及一下Java常用设计模式及应用场景:
1、单例模式:保证一个类仅有一个实例并提供一个全局访问点,如一些配置文件或者管理类可以设计为单例,常用的线程池也是单例。
2、模板方法:在定义好的算法骨架下允许子类为一个或多个步骤提供实现,一次性实现算法的不变部分将可变部分留给子类实现,当子类实现代码逻辑雷同时可以使用此设计模式。
3、工厂模式:创建对象需要大量的重复代码时,通过子类实现方法来创建对象。如Spring中通过工厂模式将创建对象的任务交给容器管理。
4、原型模式 :在应用程序可能有某些对象的结构比较复杂,但又需要频繁的使用它们,如这个时候不断的新建这个对象势必会大大损耗系统内存的,这个时候需要使用原型模式来对这个结构复杂又要频繁使用的对象进行克隆。所以原型模式就是用原型实例指定创建对象的种类,且通过复制这些原型创建新的对象。主要应用与那些创建新对象的成本过大时。它的主要优点就是简化了新对象的创建过程,提高了效率,同时原型模式提供了简化的创建结构。
5、建造者模式:讲复杂对象的构建和表示分离,适用于流程固定,但是顺序不一定固定的场景。如需要给一个对象多次给不同的属性赋值,可以使用链式调用传参,最后生成对象。如策略模式,观察者模式,模板方法模式,foreach中的迭代器模式,spring 中ASM的访问者模式,动态代理等都有一些了解。
6、适配器模式:在应用程序中可能需要将两个不同接口的类来进行通信,在不修改这两个的前提下可能会需要某个中间件来完成这个衔接的过程。这个中间件就是适配器。所谓适配器模式就是将一个类的接口,转换成客户期望的另一个接口。它可以让原本两个不兼容的接口能够无缝完成对接。作为中间件的适配器将目标类和适配者解耦,增加了类的透明性和可复用性。
7、桥接模式 :如果说某个系统能够从多个角度来进行分类,且每一种分类都可能会变化,那么我们需要做的就是讲这多个角度分离出来,使得他们能独立变化,减少他们之间的耦合,这个分离过程就使用了桥接模式。所谓桥接模式就是讲抽象部分和实现部分隔离开来,使得他们能够独立变化。桥接模式将继承关系转化成关联关系,封装了变化,完成了解耦,减少了系统中类的数量,也减少了代码量。
设计模式应用场景是什么?JavaEE应用中Spring用于创建IOC容器的监听器就是基于观察者模式的。Spring中获取FileSystemResource和ClassPathResource等功能雷同的类时使用模板方法。
单例模式包含懒汉饿汉式以及不同的变种,工厂类设计模式一般也设计为单例。项目中的一些配置或引入外部的sdk需要创建管理类,或封装自己的框架时需要用到单例;工厂方法在编码时不能预见需要创建哪种类的实例。
设计模式是一套被反复使用、多数人知晓、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式于己于他人于系统都是多赢,设计模式使代码编制真正工程化,设计模式是软件工程的基石。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
转行Java开发程序员零基础入门学什么
转行Java开发程序员零基础入门学习,Java开发语言从诞生到现在发展已经有很多年了,网络非常多的关于Java学习路线图、Java培训视频等资源,如果想自学可以在网站找到很多的自学教程。零基础学Java有两种方法,自学和参加java培训机构。
9016
2019-08-14 18:00:27
Java运行机制是什么?
不管是学习Java还是其他什么变成语言,我们不仅要了解它的特性,充分的使用Java语言完成各种程序开发工作,还要了解Java的运行机制。只有了解其底层的运行机制,才能更好的利用Java完成各项工作。Java运行机制是什么?
6178
2019-11-05 18:28:09
使用集合类各种容器时必须注意的细节
Java集合类是Java将一些基本的和使用频率极高的基础类进行封装和增强后再一一个类的形式提供。集合类可以在里面保存多个对象的类,不同的集合类有不同的功能和特点。这里就和大家介绍一下再使用集合类各种容器的时候,必须注意的相关细节。
4551
2019-12-11 18:30:42
转行学Java后悔了怎么办?如何调整职业方向?
不少人辞去工作转行学Java,没学会转行学Java后悔了。在学习过程中发现自己并不适合做编程,感到后悔怎么办呢?工作没有了,又花费了时间和经历转行没成功。有的人转行是真的喜欢,在转行前做了很多准备下定决心去学习;而有的人转行学Java很盲目,看别人学完找到高薪工作自己也想学,并不是真的喜欢,这两种心态就决定了前者更容易获得成功。
10142
2020-01-16 11:05:04
在项目中如何使用 Disruptor 做内部消息队列?
在项目中如何使用 Disruptor 做内部消息队列?工作中遇到项目使用Disruptor做消息队列 ,不是Kafka也不是rabbitmq;Disruptor有个最大的优点就是快,是开源的。其实生成者到消费者模式是很常见的,通过一些消息队列也可以轻松做到上述的效果。不同的地方在于,Disruptor 是在内存中以队列的方式去实现的,而且是无锁的。
3383
2022-04-29 14:03:28
热门文章
- 前端是什么
- 前端开发的工作职责
- 前端开发需要会什么?先掌握这三大核心关键技术
- 前端开发的工作方向有哪些?
- 简历加分-4步写出HR想要的简历
- 程序员如何突击面试?两大招带你拿下面试官
- 程序员面试技巧
- 架构师的厉害之处竟然是这……
- 架构师书籍推荐
- 懂了这些,才能成为架构师 查看更多
扫描二维码,了解更多信息
