桥接设计模式

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

    }
}
相关推荐
y1y1z几秒前
Spring国际化
java·后端·spring
郝学胜-神的一滴3 分钟前
Linux信号屏蔽字详解:原理、应用与实践
linux·服务器·开发语言·c++·程序人生
沐知全栈开发5 分钟前
CSS 创建:从基础到实践
开发语言
weixin_307779135 分钟前
Jenkins ASM API 插件:详解与应用指南
java·运维·开发语言·后端·jenkins
ByteX16 分钟前
springboot 项目某个接口响应特别慢排查
java·spring boot·后端
杀死那个蝈坦36 分钟前
Caffeine
java·jvm·spring cloud·tomcat
n***271938 分钟前
JAVA (Springboot) i18n国际化语言配置
java·spring boot·python
汤姆yu38 分钟前
基于springboot的校园家教信息系统
java·spring boot·后端·校园家教
心无旁骛~39 分钟前
python多进程multiprocessing——spawn启动方式解析
开发语言·python
q***062940 分钟前
Spring Boot--@PathVariable、@RequestParam、@RequestBody
java·spring boot·后端