在线客服
扫描二维码
下载博学谷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架构师之分布式和微服务》教程本身的视频内容也是十分优质的,大家可以深入了解一下。
3911
2019-12-13 17:44:47
Java开发常用API有哪些?
如果想成为高级程序员学习API必不可少,高效程序员需要学习Math、System、Object、Objects、BigDecimal、类型包装类、数组、Arrays等重要类库与方法。
3703
2019-12-30 16:03:56
高级Java 程序员要掌握哪些职业技能?
要学习Core Java、多线程并发编程、I/O、JVM、设计模式、常用数据库JavaWeb开发的框架、Netty 等基础知识,Netty 简单易用容易上手,但网络编程复杂,会存在各种的状况和可能性。
2671
2020-10-23 15:45:43
博学谷Java架构师课程主要讲解哪些内容?
Java架构师课程内容主讲:互联网微服务前沿技术栈、大型互联网分布式架构、全景消息通信实战、架构师源码深度剖析、海量数据处理、服务实战演练篇、大型项目性能优化、软件架构设计攻略、架构师武器库、手撕面试官、黑马顺风车实战项目、面向面试的算法实战、通用解决方案、人工智能、数据挖掘等内容。接下来我们具体来看下。
2206
2022-09-29 18:43:00
MySQL数据库的基本使用之排序查询语法
MySQL数据库的基本使用之排序查询语法,为了方便查看数据可以对数据进行排序。学习排序我们需要掌握升序查询和降序查询的关键字。
2057
2022-01-13 15:42:13