The following language codes are used to write the coordinates and radii of two different circles.
API1.circle at 1: 2 7.5
API2.circle at 5: 7 27.5
Java Bridge mode Java
/ ** "Implementor" * / interface DrawingAPI {public void drawCircle (double x, double y, double radius);} / ** "ConcreteImplementor" 1/2 * / class DrawingAPI1 implements DrawingAPI {public void drawCircle (double x, double y, double radius) {System.out.printf ("API1.circle at% f:% f radius% f \ n", x, y, radius);}} / ** "ConcreteImplementor" 2/2 * / class DrawingAPI2 implements DrawingAPI {public void drawCircle (double x, double y, double radius) {System.out.printf ("API2.circle at% f:% f radius% f \ n", x, y, radius);}} / ** "Abstraction" * / interface Shape {public void draw (); // low-level public void resizeByPercentage (double pct); // high-level} / ** "Refined Abstraction" * / class CircleShape implements Shape { private double x, y, radius; private DrawingAPI drawingAPI; public CircleShape (double x, double y, double radius, DrawingAPI drawingAPI) {this.x = x; this.y = y; this.radius = radius; this.dra wingAPI = drawingAPI;} // low-level ie Implementation specific public void draw () {drawingAPI.drawCircle (x, y, radius);} // high-level ie Abstraction specific public void resizeByPercentage (double pct) {radius * = pct;}} / ** "Client" * / class BridgePattern {public static void main (String [] args) {Shape [] shapes = new Shape ; shapes [0] = new CircleShape (1, 2, 3 , new DrawingAPI1 ()); shapes = new CircleShape (5, 7, 11, new DrawingAPI2 ()); for (Shape shape: shapes) {shape.resizeByPercentage (2.5); shape.draw ();}} }
C# Bridge mode C #
using System; / ** "Implementor" * / interface IDrawingAPI {void DrawCircle (double x, double y, double radius);} / ** "ConcreteImplementor" 1/2 * / class DrawingAPI1: IDrawingAPI {public void DrawCircle (double x , double y, double radius) {System.Console.WriteLine ("API1.circle at {0}: {1} radius {2}", x, y, radius);}} / ** "ConcreteImplementor" 2/2 * / class DrawingAPI2: IDrawingAPI {public void DrawCircle (double x, double y, double radius) {System.Console.WriteLine ("API2.circle at {0}: {1} radius {2}", x, y, radius );}} / ** "Abstraction" * / interface IShape {void Draw (); // low-level (ie Implementation-specific) void ResizeByPercentage (double pct); // high-level (ie Abstraction-specific)} / ** "Refined Abstraction" * / class CircleShape: IShape {private double x, y, radius; private IDrawingAPI drawingAPI; public CircleShape (double x, double y, double radius, IDrawingAPI drawingAPI) { this.x = x; this.y = y; this.radius = radius; this.drawingAPI = drawingAPI;} // low-level (ie Implementation-specific) public void Draw () {drawingAPI.DrawCircle (x, y, radius);} // high-level (ie Abstraction-specific) public void ResizeByPercentage (double pct) {radius * = pct;}} / ** "Client" * / class BridgePattern {public static void Main (string [] args ) {IShape [] shapes = new IShape ; shapes [0] = new CircleShape (1, 2, 3, new DrawingAPI1 ()); shapes = new CircleShape (5, 7, 11, new DrawingAPI2 ( )); foreach (IShape shape in shapes) {shape.ResizeByPercentage (2.5); shape.Draw ();}}}