Click here to watch in Youtube : https://www.youtube.com/watch?v=ztdhlaWL5S0
Click the below Image to Enlarge
Bridge Design pattern - Implementation [Shape] |
Bridge Design pattern - Implementation [Shape] - Class Diagram |
Shape.java
abstract class Shape
{
protected ColorImplementor color;
protected ColorImplementor getColor()
{
return color;
}
protected void setColor( ColorImplementor color )
{
this.color = color;
}
abstract public void colorIt();
abstract public void draw();
}
Circle.java
{
public void colorIt()
{
System.out.print("Circle filled with ");
color.fillColor();
}
@Override
public void draw()
{
System.out.println("Circle has been drawn with out any color");
}
}
Rectangle.java
public class Rectangle extends Shape
{
public void colorIt()
{
System.out.print("Rectangle filled with ");
color.fillColor();
}
@Override
public void draw()
{
System.out.println("Rectangale has been drawn with out any color");
}
}
ColorImplementor.java
public interface ColorImplementor
{
public void fillColor();
}
BlueColorImplementor.java
public class BlueColorImplementor implements ColorImplementor
{
public void fillColor()
{
System.out.println("blue color using BlueColorImplementor");
}
}
GreenColorImplementor .java
public class GreenColorImplementor implements ColorImplementor
{
public void fillColor()
{
System.out.println("green color using GreenColorImplementor");
}
}
BridgeDesignPatternClient.java
import java.util.Scanner;
public class BridgeDesignPatternClient
{
public static void main( String[] args )
{
System.out.println("Please enter the color you want to fill : 'Green' or 'Blue'");
Scanner scanner = new Scanner(System.in);
String color = scanner.next();
System.out.println("color : " + color);
Shape rectangleShape = new Rectangle();
rectangleShape.draw();
Shape circleShape = new Circle();
circleShape.draw();
System.out.println();
if( "blue".equalsIgnoreCase(color) )
{
rectangleShape.setColor(new BlueColorImplementor());
rectangleShape.colorIt();
circleShape.setColor(new BlueColorImplementor());
circleShape.colorIt();
}
else if( "green".equalsIgnoreCase(color) )
{
rectangleShape.setColor(new GreenColorImplementor());
rectangleShape.colorIt();
circleShape.setColor(new GreenColorImplementor());
circleShape.colorIt();
}
}
}
Output
Please enter the color you want to fill : 'Green' or 'Blue'
Green
color : Green
Rectangale has been drawn with out any color
Circle has been drawn with out any color
Rectangle filled with green color using GreenColorImplementor
Circle filled with green color using GreenColorImplementor
Please enter the color you want to fill : 'Green' or 'Blue'
Blue
color : Blue
Rectangale has been drawn with out any color
Circle has been drawn with out any color
Rectangle filled with blue color using BlueColorImplementor
Circle filled with blue color using BlueColorImplementor
No comments:
Post a Comment