Advertisement
mbah_bejo

Bridge_Vehicle

Nov 24th, 2021
841
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.86 KB | None | 0 0
  1.  
  2. // Java code to demonstrate
  3. // bridge design pattern
  4.  
  5. // abstraction in bridge pattern
  6. abstract class Vehicle {
  7.     protected Workshop workShop1;
  8.     protected Workshop workShop2;
  9.  
  10.     protected Vehicle(Workshop workShop1, Workshop workShop2)
  11.     {
  12.         this.workShop1 = workShop1;
  13.         this.workShop2 = workShop2;
  14.     }
  15.  
  16.     abstract public void manufacture();
  17. }
  18.  
  19. // Refine abstraction 1 in bridge pattern
  20. class Car extends Vehicle {
  21.     public Car(Workshop workShop1, Workshop workShop2)
  22.     {
  23.         super(workShop1, workShop2);
  24.     }
  25.  
  26.     @Override
  27.     public void manufacture()
  28.     {
  29.         System.out.print("Car ");
  30.         workShop1.work();
  31.         workShop2.work();
  32.     }
  33. }
  34.  
  35. // Refine abstraction 2 in bridge pattern
  36. class Bike extends Vehicle {
  37.     public Bike(Workshop workShop1, Workshop workShop2)
  38.     {
  39.         super(workShop1, workShop2);
  40.     }
  41.  
  42.     @Override
  43.     public void manufacture()
  44.     {
  45.         System.out.print("Bike ");
  46.         workShop1.work();
  47.         workShop2.work();
  48.     }
  49. }
  50.  
  51. // Implementor for bridge pattern
  52. interface Workshop
  53. {
  54.     abstract public void work();
  55. }
  56.  
  57. // Concrete implementation 1 for bridge pattern
  58. class Produce implements Workshop {
  59.     @Override
  60.     public void work()
  61.     {
  62.         System.out.print("Produced");
  63.     }
  64. }
  65.  
  66. // Concrete implementation 2 for bridge pattern
  67. class Assemble implements Workshop {
  68.     @Override
  69.     public void work()
  70.     {
  71.         System.out.print(" And");
  72.         System.out.println(" Assembled.");
  73.     }
  74. }
  75.  
  76. // Demonstration of bridge design pattern
  77. class BridgePattern {
  78.     public static void main(String[] args)
  79.     {
  80.         Vehicle vehicle1 = new Car(new Produce(), new Assemble());
  81.         vehicle1.manufacture();
  82.         Vehicle vehicle2 = new Bike(new Produce(), new Assemble());
  83.         vehicle2.manufacture();
  84.     }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement