桥接模式实例

如果需要开发一个跨平台视频播放器,可以在不同操作系统平台(如Windows、Linux、Unix等)上播放多种格式的视频文件,常见的视频格式包括MPEG、RMVB、AVI、WMV等。现使用桥接模式设计该播放器。
在这里插入图片描述

package BridgePattern;
//抽象类
public abstract class OperatingSystem {
   protected VideoFile vf;

    public void setVf(VideoFile vf) {
        this.vf = vf;
    }

   public abstract void play(String Filename);
}

package BridgePattern;
//windows实现
public class Windows extends OperatingSystem {
    @Override
    public void play(String Filename) {
        String OSType="Windows播放";
        this.vf.bePlay(OSType,Filename);
    }
}

package BridgePattern;
//Unix实现
public class Unix extends OperatingSystem {
    @Override
    public void play(String Filename) {
        String OSType="Unix播放";
        this.vf.bePlay(OSType,Filename);
    }
}

package BridgePattern;

public class Linux extends OperatingSystem {
    @Override
    public void play(String Filename) {
        String OSType="Linux播放";
        this.vf.bePlay(OSType,Filename);
    }
}

package BridgePattern;
//接口
public interface VideoFile {
    void bePlay(String OSType,String Filename);
}

package BridgePattern;

public class MPEGFile implements VideoFile {
    @Override
    public void bePlay(String OSType, String Filename) {
        System.out.println(OSType+"MPEGFile"+Filename);
    }
}

package BridgePattern;

public class AVIFile implements VideoFile {
    @Override
    public void bePlay(String OSType, String Filename) {
        System.out.println(OSType+"AVIFile"+Filename);
    }
}

实现

package BridgePattern;
//桥接模式
public class Test {
    public static void main(String[] args) {
       /* VideoFile vf = new AVIFile();
        OperatingSystem os=new Windows();
        os.setVf(vf);
        os.play("音乐");*/

       VideoFile vf = new MPEGFile();
       OperatingSystem op = new Unix();
       op.setVf(vf);
       op.play("动画");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值