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