Above example provides multiple ways to turn on and turn off
multiple devices. You can add as many devices as you want and you can also
implement more methods to turn on and turn off devices. As per above example,
Switch is abstract class and inherited by multiple classes and IDevice is an
interface and act as Bridge and multiple devices implemented IDevice interface
to achieve implementation part of how device work. Client needs to call only
abstraction objects to achieve its functionality. As per above code, TV can be
turn on or off via remote control or manually via switch board. If TV/Fan
turning on/off mechanism changed then it won’t impact client code.

Advantages –

Abstraction and implementation can be changed
independently.

Abstraction and implementer hierarchies can be
extended independently.

Hides implementation details from Client.

Difference between Adapter Pattern and Bridge Pattern –

Adapter Pattern

Bridge Pattern

Adapter pattern used to work with two incompatible interfaces

Bridge pattern provides multiple ways to design different components
with multiple implementation. It allows to change abstraction and implementation separately.

Adapter pattern can be used on already designed objects.

Bridge pattern can be used on objects at the time of design.

I hope this article helps you to know more about Bridge Pattern.
Please leave your feedback in comments below.