0% found this document useful (0 votes)
58 views4 pages

Design Patterns - Bridge Pattern

The bridge pattern decouples an abstraction from its implementation so that they can vary independently. It involves a bridge interface that makes concrete classes independent from interface implementer classes. Both types of classes can be altered without affecting each other. The example demonstrates drawing circles in different colors using the same abstract class method but different bridge implementer classes.

Uploaded by

ikramusersa
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
58 views4 pages

Design Patterns - Bridge Pattern

The bridge pattern decouples an abstraction from its implementation so that they can vary independently. It involves a bridge interface that makes concrete classes independent from interface implementer classes. Both types of classes can be altered without affecting each other. The example demonstrates drawing circles in different colors using the same abstract class method but different bridge implementer classes.

Uploaded by

ikramusersa
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 4

07/12/2023 13:55 Design Patterns - Bridge Pattern

Design Patterns - Bridge Pattern

Bridge is used when we need to decouple an abstraction from its implementation so


that the two can vary independently. This type of design pattern comes under
structural pattern as this pattern decouples implementation class and abstract class
by providing a bridge structure between them.

This pattern involves an interface which acts as a bridge which makes the
functionality of concrete classes independent from interface implementer classes.
Both types of classes can be altered structurally without affecting each other.

We are demonstrating use of Bridge pattern via following example in which a circle
can be drawn in different colors using same abstract class method but different
bridge implementer classes.

Implementation
We have a DrawAPI interface which is acting as a bridge implementer and concrete
classes RedCircle, GreenCircle implementing the DrawAPI interface. Shape is an
abstract class and will use object of DrawAPI. BridgePatternDemo, our demo class
will use Shape class to draw different colored circle.

Step 1
Create bridge implementer interface.

DrawAPI.java

https://www.tutorialspoint.com/design_pattern/bridge_pattern.htm 1/4
07/12/2023 13:55 Design Patterns - Bridge Pattern

public interface DrawAPI {


public void drawCircle(int radius, int x, int y);
}

Step 2
Create concrete bridge implementer classes implementing the DrawAPI interface.

RedCircle.java

public class RedCircle implements DrawAPI {


@Override
public void drawCircle(int radius, int x, int y) {
System.out.println("Drawing Circle[ color: red, radius: " + radius + ",
}
}

GreenCircle.java

public class GreenCircle implements DrawAPI {


@Override
public void drawCircle(int radius, int x, int y) {
System.out.println("Drawing Circle[ color: green, radius: " + radius +
}
}

Step 3
Create an abstract class Shape using the DrawAPI interface.

Shape.java

public abstract class Shape {


protected DrawAPI drawAPI;

protected Shape(DrawAPI drawAPI){


this.drawAPI = drawAPI;
}

https://www.tutorialspoint.com/design_pattern/bridge_pattern.htm 2/4
07/12/2023 13:55 Design Patterns - Bridge Pattern

public abstract void draw();


}

Step 4
Create concrete class implementing the Shape interface.

Circle.java

public class Circle extends Shape {


private int x, y, radius;

public Circle(int x, int y, int radius, DrawAPI drawAPI) {


super(drawAPI);
this.x = x;
this.y = y;
this.radius = radius;
}

public void draw() {


drawAPI.drawCircle(radius,x,y);
}
}

Step 5
Use the Shape and DrawAPI classes to draw different colored circles.

BridgePatternDemo.java

public class BridgePatternDemo {


public static void main(String[] args) {
Shape redCircle = new Circle(100,100, 10, new RedCircle());
Shape greenCircle = new Circle(100,100, 10, new GreenCircle());

redCircle.draw();
greenCircle.draw();
}
}

https://www.tutorialspoint.com/design_pattern/bridge_pattern.htm 3/4
07/12/2023 13:55 Design Patterns - Bridge Pattern

Step 6
Verify the output.

Drawing Circle[ color: red, radius: 10, x: 100, 100]


Drawing Circle[ color: green, radius: 10, x: 100, 100]

https://www.tutorialspoint.com/design_pattern/bridge_pattern.htm 4/4

You might also like