桥接设计模式

java 复制代码
package com.jmj.pattern.bridge;

/**
 * 视频文件(实现化角色)
 */
public interface VideoFile {

    void decode(String fileName);
}
java 复制代码
package com.jmj.pattern.bridge;

public class RmvFile implements VideoFile{
    @Override
    public void decode(String fileName) {
        System.out.println("rmvb视频文件:"+fileName);
    }
}
java 复制代码
package com.jmj.pattern.bridge;

/**
 * avi视频文件(具体的实现化角色)
 */
public class AviFile implements VideoFile{
    @Override
    public void decode(String fileName) {
        System.out.println("avi 视频文件 : "+fileName);
    }
}
java 复制代码
package com.jmj.pattern.bridge;

public abstract class OpratingSystem {
    //声明videoFile变量
    protected  VideoFile videoFile;

    public OpratingSystem(VideoFile videoFile) {
        this.videoFile = videoFile;
    }
    public abstract void play(String fileName);


}
java 复制代码
package com.jmj.pattern.bridge;

/**
 * 扩展抽象化角色(windows操作系统)
 */
public class Windows extends OpratingSystem{


    public Windows(VideoFile videoFile) {
        super(videoFile);
    }

    @Override
    public void play(String fileName) {
      videoFile.decode(fileName);
    }
}
java 复制代码
package com.jmj.pattern.bridge;

public class Mac extends OpratingSystem{
    public Mac(VideoFile videoFile) {
        super(videoFile);
    }

    @Override
    public void play(String fileName) {
        videoFile.decode(fileName);
    }
}
java 复制代码
package com.jmj.pattern.bridge;

public class Client {
    public static void main(String[] args) {
        //创建mac系统对象
        OpratingSystem system=new Mac(new RmvFile());
        system.play("战狼3");

    }
}
相关推荐
生信小窝2 分钟前
基于R获取全球海岸线数据获取与导出
开发语言·r语言
程序员卷卷狗6 分钟前
联合索引的最左前缀原则与失效场景
java·开发语言·数据库·mysql
纪莫7 分钟前
技术面:SpringCloud(SpringCloud有哪些组件,SpringCloud与Dubbo的区别)
java·spring·java面试⑧股
27399202912 分钟前
qInstallMessageHandler(重定向至log文件)
开发语言·qt
yddddddy14 分钟前
关于vue3
开发语言·vue
会编程的吕洞宾31 分钟前
Java中的“万物皆对象”:一场编程界的哲学革命
java·后端
会编程的吕洞宾39 分钟前
Java封装:修仙界的"护体罡气"
java·后端
豆沙沙包?39 分钟前
2025年--Lc231-350. 两个数组的交集 II-Java版
java·开发语言
whm27771 小时前
Visual Basic创建工具栏
开发语言·visual studio
程序猿20231 小时前
Python每日一练---第九天:H指数
开发语言·python