1、分离抽象实现:将抽象部分与他的具体实现部分进行分离,使他们都可以独立的变化、互不影响(解耦) 2、组合方式:通过组合的方式、建立两个类之间的关系,而不是继承
使用桥梁连接两个类,在两个类之间建立某种联系,可以通过继承,也可以通过组合,桥接模式采用组合,合成复用原则、推荐优先使用组合!
桥接模式和组合模式的区别
组合模式 更强调部分 与整体间的组合
-
桥接模式和适配器模式
共同点 都是让两个类配合工作
- 不同点 目的性不同,
适配器模式 是改变已有接口、让二者之前互相配合,目的是配合
桥接模式 分离抽象和具体的实现,目的是分离
class Speed{
constructor(x, y){
this.x = x;
this.y = y;
}
run(){
console.log('运动起来')
}
}
class Color{
constructor(color){
this.color = color;
}
draw(){
console.log('绘制色彩',this.color)
}
}
// 桥接类-----球类
class Ball{
constructor(x, y, color){
this.speed = new Speed(x, y);
this.color = new Color(color);
}
init(){
// 实现运动
this.speed.run()
// 实现绘制
this.color.draw()
}
}
let ball = new Ball(10,10,'red')
ball.init()