桥接设计模式

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");

    }
}
相关推荐
Baron X16 分钟前
Eclipse Temurin 21 (JRE) Alpine 镜像获取、离线导入与推送操作
java·docker·eclipse·temurin
孙浩君29 分钟前
我用 Spring Boot + xterm.js 写了个终端风格互动叙事游戏引擎:游戏即文件,上传一个 JSON 就能玩
java
jose37 分钟前
URL 里多写了一个端口,为什么请求还能调通?
java·后端
孙浩君41 分钟前
我用 Spring Boot 写了个「终端风格模拟经营游戏引擎」:引擎 + JSON 游戏文件,开箱即玩
java
茉莉玫瑰花茶1 小时前
GO [ 标准库 ]
开发语言·后端·golang
y1su1 小时前
Leetcode 动态规划 模板
java·数据结构·算法·leetcode·动态规划
半杯咖啡半行码1 小时前
C++11核心特性详解:从C++11到C++20 的现代C++指南
开发语言·c++
Wang's Blog1 小时前
Java 项目实战: 交友项目 - JWT 概述:为什么要用 Token 换掉 Session
java·ui·交友
牧瀬クリスだ2 小时前
单例模式终极指南:从入门到防破坏
单例模式·设计模式
SL_staff2 小时前
低代码选型避坑指南:为什么‘能拖拽’不等于‘能交付’?——基于JVS八大引擎的四维交付能力评估框架
java·低代码·spring cloud