在线客服
扫描二维码
下载博学谷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的两种方法参数传递方式。本文将针对按值传递和引用传递分别是什么,没有改变对象的值的原因等一系列问题,进行解答。
6951
2019-08-08 17:55:02
什么是微服务?微服务优缺点分析
微服务是近些年流行起来的热门概念,与传统的的IT架构相比,它有许多的优势。那么到底什么是微服务呢?本文将对微服务优缺点进行分析,让大家全面的了解微服务。
7969
2019-08-13 09:59:51
零基础Java学习哪些内容?
Java学习路线相当于学习思路,需要从基础阶段开始学习,接触Web基础、JavaWeb、JavaEE阶段巩固基础,把基础知识打牢才能进一步提升专业技能。
5035
2019-11-15 15:33:31
.NET和Java发展前景哪个好?
在编程语言中Java的出现频率远远高于.NET,Java语言一些特点的独立性,在各项服务器中应用程序的开发中所占具的独特优势,Java有非常广泛的应用市场,其生态系统几乎涵盖了目前市面上大部分的软硬件,Java几乎是万能的,能想到的Java基本都能实现,程序员都比较偏爱Java开发。
3803
2021-03-22 11:51:41
where条件查询怎么使用?注意哪些问题?
where条件查询怎么使用?注意哪些问题?where语句支持的运算符比较运算符、逻辑运算符、模糊查询、范围查询、空判断等,为了更精确的查询出特定数据,需要学习SQL语法where条件查询。
3961
2022-01-12 16:13:59
热门文章
- 前端是什么
- 前端开发的工作职责
- 前端开发需要会什么?先掌握这三大核心关键技术
- 前端开发的工作方向有哪些?
- 简历加分-4步写出HR想要的简历
- 程序员如何突击面试?两大招带你拿下面试官
- 程序员面试技巧
- 架构师的厉害之处竟然是这……
- 架构师书籍推荐
- 懂了这些,才能成为架构师 查看更多
扫描二维码,了解更多信息
