设计模式学习篇-桥接模式

1. 概念

GoF里面的解释:将抽象和实现解耦,让它们可以独立变化。个人理解:各种不同的A(A1,A2...),在桥梁B(B1,B2..)的作用下,可以通过同一接口来访问到不同的A的具体实现

2. 为什么要使用桥接模式

举个例子,在连接数据库的时候使用的JDBC,它有很多种驱动,比如MySQL,MSSQL,Oracle等等。使用桥接模式可以让开发者在连接数据库时非常的方便,不同的数据库基本上代码都是一致。只需要修改连接的驱动字符就行,方便了后续的开发

3.举例说明

游戏中根据不同的平台实现各种相关的逻辑

// 游戏中根据不同的平台实现各种相关的逻辑

interface IChannel {
    getUUID(): void
}

class AndroidChannel implements IChannel {
    getUUID(): void {
        console.log("AndroidChannel getUUID");
    }
}

class IosChannel implements IChannel {
    getUUID(): void {
        console.log("IosChannel getUUID");
    }
}

abstract class ISdkHelper {
    protected _channel: IChannel;
    constructor(channel: IChannel) {
        this._channel = channel;
    }

    abstract getUUID(): void;
}

class IOSSdkHelper extends ISdkHelper {
    getUUID(): void {
        this._channel.getUUID();
    }
}

class AndroidSdkHelper extends ISdkHelper {
    getUUID(): void {
        this._channel.getUUID();
    }
}

let channel: ISdkHelper = new IOSSdkHelper(new IosChannel());
channel.getUUID();
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容