设计模式结构型桥接模式

Posted lisin-lee-cooper

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式结构型桥接模式相关的知识,希望对你有一定的参考价值。

一.概念

1.1概念

将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和现这两个可变维度的耦合度。

1.2 结构

桥接(Bridge)模式包含以下主要角色:
抽象化(Abstraction)角色 :定义抽象类,并包含一个对实现化对象的引用。
扩展抽象化(Refined Abstraction)角色 :是抽象化角色的子类,实现父类中的业务方法,
并通过组合关系调用实现化角色中的业务方法。
实现化(Implementor)角色 :定义实现化角色的接口,供扩展抽象化角色调用。
具体实现化(Concrete Implementor)角色 :给出实现化角色接口的具体实现。

二.场景

需要开发一个跨平台视频播放器,可以在不同操作系统平台(如Windows、Mac、Linux等)上播放多种格式的视频文件,常见的视频格式包括RMVB、AVI、WMV等。该播放器包含了两个维度,

三.类图及实现

public interface VideoFile 
    void decode(String fileName);

public class AVIFile implements VideoFile 
    public void decode(String fileName) 
        System.out.println("avi视频文件:" + fileName);
    

public class REVBBFile implements VideoFile 
    public void decode(String fileName) 
        System.out.println("rmvb文件:" + fileName);
    

public class Windows extends OperatingSystem 
    public Windows(VideoFile videoFile) 
        super(videoFile);
    

    public void play(String fileName) 
        videoFile.decode(fileName);
    

public class Mac extends OperatingSystem 
    public Mac(VideoFile videoFile) 
        super(videoFile);
    

    public void play(String fileName) 
        videoFile.decode(fileName);
    

public abstract class OperatingSystem 

    protected VideoFile videoFile;

    public OperatingSystem(VideoFile videoFile) 
        this.videoFile = videoFile;
    

    public abstract void play(String fileName);



    public static void main(String[] args) 
        OperatingSystem os = new Windows(new REVBBFile());
        os.play("战狼3");
    


以上是关于设计模式结构型桥接模式的主要内容,如果未能解决你的问题,请参考以下文章

结构型模式-桥接模式

设计模式桥接模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )

设计模式 - 结构型模式_桥接模式

设计模式 - 结构型模式_桥接模式

设计模式 结构型模式 -- 桥接模式

设计模式之桥接