最后
由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档
还有更多面试复习笔记分享如下
-
Adapter:适配器类
-
Adaptee:适配者类
-
Client:客户类
适配器模式有对象适配器和类适配器两种实现:
====================================================================
=====================================================================
-
MediaPlayer 接口
-
实现 MediaPlayer 接口的实体类 AudioPlayer
默认情况下,AudioPlayer 可以播放 mp3
-
接口 AdvancedMediaPlayer
-
实现了 AdvancedMediaPlayer 接口的实体类。该类可以播放 vlc 和 mp4 格式的文件。
我们想要让 AudioPlayer 播放其他格式的音频文件。为了实现这个功能,我们需要创建
- 一个实现了 MediaPlayer 接口的适配器类 MediaAdapter
使用
- AdvancedMediaPlayer 对象来播放所需的格式。
AudioPlayer 使用适配器类 MediaAdapter 传递所需的音频类型,不需要知道能播放所需格式音频的实际类。AdapterPatternDemo,我们的演示类使用 AudioPlayer 类来播放各种格式。
步骤 1
创建接口。
步骤 2
步骤 3
步骤 4
步骤 5
步骤 6
测试类输出:
=================================================================
重写这个类,实现 Iterable
接口?
-
不过你并不是总拥有源代码的控制权
-
并且,除非必须这么做,否则,我们也不愿意重写一个类
因此另一种选择,创建一个 适配器(Adapter) 来实现所需接口。有多种适配器的实现,例如继承:
在 for-in 语句中使用 IterableFibonacci
,必须在构造函数中提供一个边界值,这样 hasNext()
才知道何时返回 false,结束循环。
===================================================================
-
解耦目标类和适配者类,通过引入一个适配器类来重用现有的适配者类,而无须修改原有代码
-
增加了类的透明性和复用性,将具体的实现封装在适配者类中,对于客户端类来说是透明的,而且提高了适配者的复用性
-
灵活性和扩展性都非常好,通过使用配置文件,可以很方便地更换适配器,也可以在不修改原有代码的基础上增加新的适配器类,完全符合“开闭原则”
类适配器模式还具有如下优点:
由于适配器类是适配者类的子类,因此可以在适配器类中置换一些适配者的方法,使得适配器的灵活性更强。
对象适配器模式还具有如下优点:
一个对象适配器可以把多个不同的适配者适配到同一个目标,也就是说,同一个适配器可以把适配者类和它的子类都适配到目标接口。
我的面试宝典:一线互联网大厂Java核心面试题库
以下是我个人的一些做法,希望可以给各位提供一些帮助:
整理了很长一段时间,拿来复习面试刷题非常合适,其中包括了Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等,且还会持续的更新…可star一下!
283页的Java进阶核心pdf文档
Java部分:Java基础,集合,并发,多线程,JVM,设计模式
数据结构算法:Java算法,数据结构
开源框架部分:Spring,MyBatis,MVC,netty,tomcat
分布式部分:架构设计,Redis缓存,Zookeeper,kafka,RabbitMQ,负载均衡等
微服务部分:SpringBoot,SpringCloud,Dubbo,Docker
还有源码相关的阅读学习
g-BIjB5lQb-1715230321658)]