我是靠谱客的博主 发嗲蜡烛,这篇文章主要介绍设计模式(六)适配器模式,现在分享给大家,希望可以做个参考。

前面介绍的几种设计模式都是创建型模式,用于以不同的方式创建对象。下面我们来看看适配器模式,这是一种结构型模式,用于在两个无关的接口之间搭建桥梁。

适配器模式主要用于在新旧代码直接转换。

直接看例子吧。假设我们有一个音乐播放器。

复制代码
1
2
3
4
5
6
7
8
9
10
11
public interface MusicPlayer { void playMusic(); } class MyMusicPlayer implements MusicPlayer { @Override public void playMusic() { System.out.println("播放音乐"); } }

然后还有一个视频播放器。

复制代码
1
2
3
4
5
6
7
8
9
10
11
public interface VideoPlayer { void playVideo(); } class MyVideoPlayer implements VideoPlayer{ @Override public void playVideo() { System.out.println("播放视频"); } }

我们可以看到这两个接口的方法不同,现在我们希望以一种统一的方式播放音乐和视频。所以就需要类似下面的适配器。在适配器中,我们做了一些工作,将两个接口的方法包装,统一使用play方法调用。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public interface MediaPlayer { void play(); } class MediaPlayerAdapter implements MediaPlayer { private MusicPlayer musicPlayer; private VideoPlayer videoPlayer; private boolean isMusicPlayer = false; private boolean isVideoPlayer = false; public MediaPlayerAdapter(Object player) { if (player instanceof MusicPlayer) { musicPlayer = (MusicPlayer) player; isMusicPlayer = true; } else if (player instanceof VideoPlayer) { videoPlayer = (VideoPlayer) player; isVideoPlayer = true; } } @Override public void play() { if (isMusicPlayer) { musicPlayer.playMusic(); } else if (isVideoPlayer) { videoPlayer.playVideo(); } } }

我们可以看到,适配器的作用很强大,可以将不同接口联系起来,所以适配器模式的使用非常广泛。留意一下就会在很多地方发现它的身影。

最后

以上就是发嗲蜡烛最近收集整理的关于设计模式(六)适配器模式的全部内容,更多相关设计模式(六)适配器模式内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部