JavaScript 设计模式之-桥接(Bridge)

什么是桥接模式?
是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦.

意图:将抽象部分与实现部分分离,使它们都可以独立的变化。

桥接模式式有哪些使用场景?
这平时开发的时候是比较常用的一种设计模式,有时候你甚至不经意间就使用了桥接模式,例如一些功能开发,我们总是把一些特性抽离出来,然后在拼装在一起使用
主要解决
在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活。

桥接模式优缺点有哪些?
优点
1、抽象和实现的分离。
2、优秀的扩展能力。
3、实现细节对客户透明。
缺点
抽象太多,可能造成代码很难理解。

JS 如何实现*桥接模式?
比如鸟和狗,他们有共同的特性,比如都会说话speak,和跑run,鸟会飞fly。
上面这些行为可以理解为抽象的一些功能。实现部分是我们通过这些行为组装成鸟和狗


class Speak {
  constructor(name) {
    this.name = name;
  }
  speak() {
    console.log(this.name + " speaking")
  }
}


class Run {
  constructor(name) {
    this.name = name;
  }
  run() {
    console.log(this.name + " running")
  }
}

class Fly {
  constructor(name) {
    this.name = name;
  }
  fly() {
    console.log(this.name + " fly")
  }
}

class Animal {
  constructor(name) {
    this.name = name
  }
}

class Dog extends Animal {
  constructor(name) {
    super(name)
  }
  speak() {
    const action = new Speak(this.name)
    action.speak()
  }

  run() {
    const action = new Run(this.name)
    action.run()
  }

}

class Bird extends Animal {
  constructor(name) {
    super(name)
  }

  speak() {
    const action = new Speak(this.name)
    action.speak()
  }

  run() {
    const action = new Run(this.name)
    action.run()
  }

  fly() {
    const action = new Fly(this.name)
    action.fly()
  }
}

const bird = new Bird("小黄鹂")
bird.speak()

const dog = new Dog("大黄")
dog.run();

结果
在这里插入图片描述
其实一些共性的功能可以用继承,但是有些场景使用继承导致扩展性不强,就可以使用桥接。其实最简单理解为对函数或者对象进行抽象的封。装。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript 设计模式是在 JavaScript 编程中经常使用的一种代码组织和架构方法。设计模式可以帮助开发者解决常见的问题,并提供可复用的解决方案。 以下是一些常见的 JavaScript 设计模式: 1. 工厂模式(Factory Pattern):通过使用工厂方法创建对象,将对象的创建和使用分离开来,提高代码的可扩展性和可维护性。 2. 单例模式(Singleton Pattern):确保一个类只有一个实例,并提供一个全局访问点来访问该实例。 3. 观察者模式(Observer Pattern):定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都会被自动通知并更新。 4. 发布-订阅模式(Publish-Subscribe Pattern):也是一种观察者模式的变体,在这种模式中,发布者(Publisher)和订阅者(Subscriber)之间通过消息队列进行通信。 5. 原型模式(Prototype Pattern):通过复制现有对象来创建新对象,避免了使用类进行实例化的复杂性。 6. 适配器模式(Adapter Pattern):将一个类的接口转换成客户端所期望的另一个接口,使得原本不兼容的类可以一起工作。 7. 装饰者模式(Decorator Pattern):动态地给对象添加新的功能,而不影响其他对象。 8. 策略模式(Strategy Pattern):定义一系列算法,将每个算法封装起来,并使它们可以互换使用。 这些设计模式可以帮助开发者在编写 JavaScript 代码时更好地组织和设计代码结构,提高代码的可读性、可维护性和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值