当前位置: 首页> 汽车> 车展 > 哈尔滨网页设计_原神网页制作素材_福州seo结算_nba实力榜最新排名

哈尔滨网页设计_原神网页制作素材_福州seo结算_nba实力榜最新排名

时间:2025/9/11 17:30:11来源:https://blog.csdn.net/HongSH945/article/details/145798554 浏览次数: 0次
哈尔滨网页设计_原神网页制作素材_福州seo结算_nba实力榜最新排名

结构型模式 - 适配器模式 (Adapter Pattern)

适配器模式是一种结构型设计模式,它允许将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。


  • 类适配器,适用于要适配的类是一个接口,定义了规范。然后配合 extend 和 implements
public class SDAdapterTF extends TFCardImpl implements SDCard {// 实现 SDCard 的标准方法,读取 sd方法public String readSD() {// 适配 readTF 来当成 readSD 使用,达到适配的效果return readTF();}
}
  • 对象适配器,适用于要适配的是类,因为Java 不支持多继承 extends , 不采用 extends 就不会把宝贵的继承位占掉.
public class SDAdapterTF implements SDCard {private TFCard tfCard;public SDAdapterTF(TFCard tfCard) {this.tfCard = tfCard; // 由构造函数传递对象进来}public String readSD() {// 利用成员对象的方式来调用,就不会占用 extendsreturn tfCard.readTF();}
}

  • 接口适配器

这个也经常用, 当你只想要实现部分功能, 这么做就不需要全部实现

// 定义媒体播放器接口,包含多种播放方法
interface MediaPlayer {void playMP3(String fileName);void playMP4(String fileName);void playAVI(String fileName);
}// 接口适配器抽象类,实现 MediaPlayer 接口并提供默认空实现
abstract class MediaPlayerAdapter implements MediaPlayer {@Overridepublic void playMP3(String fileName) {// 默认空实现}@Overridepublic void playMP4(String fileName) {// 默认空实现}@Overridepublic void playAVI(String fileName) {// 默认空实现}
}// 具体的 MP3 播放器类,继承自 MediaPlayerAdapter 并重写 playMP3 方法
class MP3Player extends MediaPlayerAdapter {@Overridepublic void playMP3(String fileName) {System.out.println("Playing MP3 file: " + fileName);}
}// 具体的 MP4 播放器类,继承自 MediaPlayerAdapter 并重写 playMP4 方法
class MP4Player extends MediaPlayerAdapter {@Overridepublic void playMP4(String fileName) {System.out.println("Playing MP4 file: " + fileName);}
}// 客户端代码
public class Main {public static void main(String[] args) {// 创建 MP3 播放器对象MediaPlayer mp3Player = new MP3Player();mp3Player.playMP3("song.mp3");// 创建 MP4 播放器对象MediaPlayer mp4Player = new MP4Player();mp4Player.playMP4("movie.mp4");}
}
关键字:哈尔滨网页设计_原神网页制作素材_福州seo结算_nba实力榜最新排名

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: