在线客服
扫描二维码
下载博学谷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培训机构。
8787
2019-08-14 18:00:27
Java工程师必须掌握的五个工具
Java编程语言具有极高的安全性,因此大部分企业都使用Java开发自己的核心产品。而对于Java工程师而言,想要提高自己的工作效率,要么就是掌握扎实的开发技能,面对功能需求可以快速完成,要么就是掌握更多的高效工具,提高自己编程的效率。这里和广大的java工程师分享五个必须掌握的工具。
7121
2019-07-01 19:02:59
提高Java开发效率的十个编程好习惯
对于刚刚入门学习Java编程语言的初学者而言,学习Java的基础语法固然重要,养成良好的编程习惯也是在一开始就需要注意的学习重点。只有在一开始建立好基础的习惯,才能在后期的Java开发中,提高自己的编码水平和效率。在这里小编整理了提高Java开发效率的十个编程好习惯供大家参考,下面一起来看看吧!
5115
2020-03-02 14:29:25
Java有什么优点?Java开发优势
Java有什么优点?Java作为目前各大互联网公司和编程语言中非常重要和常见的编程语言之一,被许多行业所运用
6022
2020-05-26 10:11:30
.NET和Java发展前景哪个好?
在编程语言中Java的出现频率远远高于.NET,Java语言一些特点的独立性,在各项服务器中应用程序的开发中所占具的独特优势,Java有非常广泛的应用市场,其生态系统几乎涵盖了目前市面上大部分的软硬件,Java几乎是万能的,能想到的Java基本都能实现,程序员都比较偏爱Java开发。
3253
2021-03-22 11:51:41