9_桥接模式

2021-01-13  本文已影响0人  真是个点子王

结构

实例

// VideoFile.java
public interface VideoFile {

    // 解码功能
    void decode(String fileName);
}

// AviFile.java
public class AviFile implements VideoFile{

    @Override
    public void decode(String fileName) {
        System.out.println("avi视频文件 : " + fileName);
    }
}

// RmvbFile.java
public class RmvbFile implements VideoFile{
    @Override
    public void decode(String fileName) {
        System.out.println("rmvb视频文件 : " + fileName);
    }
}

//Operating.java
public abstract class OperatingSystem {

    // 声明videoFile变量
    protected VideoFile videoFile;

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

//Mac.java
public class Mac extends OperatingSystem{
    public Mac(VideoFile videoFile) {

        super(videoFile);
    }

    @Override
    public void play(String fileName) {
        videoFile.decode(fileName);
    }
}

//Windows.java
public class Windows extends OperatingSystem{

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

    @Override
    public void play(String fileName) {
        videoFile.decode(fileName);
    }
}

// Client.java
public class Client {
    public static void main(String[] args) {
        OperatingSystem operatingSystem = new Mac(new AviFile());

        operatingSystem.play("Hello World");
    }
}

使用场景

上一篇 下一篇

猜你喜欢

热点阅读