在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
在Java 中一般认为有23 种设计模式,这听上去很多,然而Java设计模式不需要所有的都会,我们只需要掌握常用的几种设计模式。 Java设计模式分为三大类: 创建型模式、结构型模式、行为型模式。小面详细来讲解Java设计模式中的七种结构型模式。

Java设计模式中的七种结构型模式即:适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式。其中对象的适配器模式是各种模式的起源。
一、适配器模式:
类的适配器模式:当希望将一个类转换成满足另一个新接口的类时,可以使用类的适配器模式,创建一个新类,继承原有的类,实现新的接口即可。
对象的适配器模式:当希望将一个对象转换成满足另一个新接口的对象时,可以创建一个Wrapper类,持有原类的一个实例,在Wrapper类的方法中,调用实例的方法就行。
接口的适配器模式:当不希望实现一个接口中所有的方法时,可以创建一个抽象类Wrapper,实现所有方法,我们写别的类的时候,继承抽象类即可。
二、装饰模式(Decorator)
1、需要扩展一个类的功能。
2、动态的为一个对象增加功能,而且还能动态撤销。(继承不能做到这一点,继承的功能是静态的,不能动态增删。)缺点:产生过多相似的对象,不易排错!
三、代理模式
如果已有的方法在使用的时候需要对原有的方法进行改进,此时有两种办法:
1、修改原有的方法来适应。这样违反了“对扩展开放,对修改关闭”的原则。
2、就是采用一个代理类调用原有的方法,且对产生的结果进行控制。这种方法就是代理模式。
使用代理模式,可以将功能划分的更加清晰,有助于后期维护!
四、外观模式(Facade)
如果我们没有Computer类,那么,CPU、Memory、Disk他们之间将会相互持有实例,产生关系,这样会造成严重的依赖,修改一个类,可能会带来其他类的修改,这不是我们想要看到的,有了Computer类,他们之间的关系被放在了Computer类里,这样就起到了解耦的作用,这,就是外观模式!
五、桥接模式(Bridge)
想jdbc 实现多个数据库一样
六、组合模式(Composite)
使用场景:将多个对象组合在一起进行操作,常用于表示树形结构中,例如二叉树,数等。
七、享元模式(Flyweight)
通过连接池的管理,实现了数据库连接的共享,不需要每一次都重新创建连接,节省了数据库重新创建的开销,提升了系统的性能!
以上就是Java设计模式的七种结构型模式,这些都是基础知识,大家都要掌握哦!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
十种超实用Java测试框架库
老话说得好:工欲善其事,必先利其器。测试是应用程序生命周期里至关重要的一步,应用程序在进行最后的部署之前,需要通过测试来确保它的负载管理能力以及在特殊情况下的工作条件和工作加载情况。因此,本文例举了十种超实用的Java测试框架库,希望可以帮到大家。
7361
2019-07-05 17:47:32
Java程序员面试题Spring Boot框架
Spring Boot框架可以简化Spring开发,并且监护spring应用开发。从本质上来说,Spring Boot就是Spring。程序员在Java的面试中,也会常常遇到关于Spring Boot的面试题,因此本文整理了一些这方面的经典知识点,有需求的小伙伴可以复习一下。
7828
2019-09-12 16:44:49
2019年Spring Boot面试题集合附答案
相信所有Java开发者都认同,在微服务中,Spring Boot是最好的Java框架。Spring Boot自身最大的优势就是简化配置,可以说它真正实现了自动化配置。因此大家要想做好Java开发,给大家的建议就是成为Spring Boot的高手。本文为大家整理了2019年最新的Spring Boot面试题和答案,如果大家能够好好做一做这份面试题集合,相信面试一定手到擒来。
7140
2019-12-20 18:05:36
Java培训班在线教育怎么样?零基础能学好吗?
Java培训班在线教育怎么样?零基础能学好吗?随着IT在线教育的发展,博学谷的课程无论是在教学方式还是在课程内容上,都实现了极大的突破和升级,一改传统线上教育只对学员单向输出的不足。以博学谷Java在线就业班的课程为例,该教程专门为零基础学员打造,因此课程难度循序渐进,逐步深入,只要愿意付出努力好好学习,即使是零基础学完该课程也能进阶为Java高手。
4905
2020-01-06 15:26:07
SpringMVC框架是干什么的?有哪些优点?
目前企业当中有80%的项目使用的都是SpringMVC框架,这么多公司都使用SpringMVC框架来开发项目,SpringMVC框架必然有他的过人之处。今天让我们一起来看看SpringMVC框架是干什么的,有哪些优点。
6758
2020-08-14 14:46:43
