Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Bridge Pattern digunakan untuk memisahkan interface dari implementasinya yang akan memberikan fleksibilitas sehingga keduanya dapat bervariasi secara independen. Pattern ini melibatkan sebuah interface yang bertindak sebagai jembatan yang akan membuat fungsionalitas concrete class menjadi independen dari implementasinya. Bridge Pattern termasuk kedalam Structural Pattern.
- // Engine.java
- public interface Engine {
- boolean isStarted();
- void on();
- void off();
- int getFuel();
- void setFuel(int gasolineBar);
- void printStatus();
- }
- // Car.java
- public class Car implements Engine {
- private boolean started = false;
- private int fuel = 100;
- @Override
- public boolean isStarted() {
- return started;
- }
- @Override
- public void on() {
- started = true;
- }
- @Override
- public void off() {
- started = false;
- }
- @Override
- public int getFuel() {
- return fuel;
- }
- @Override
- public void setFuel(int fuel) {
- if(fuel > 0) {
- this.fuel = 100;
- }
- else if(fuel < 0) {
- this.fuel = 0;
- }
- else {
- this.fuel = fuel;
- }
- }
- @Override
- public void printStatus() {
- System.out.println("I'm a Hyper Car");
- System.out.println("My engine is " + (started? "on" : "off"));
- System.out.println("Tank of liquids is : " + fuel + "\n");
- }
- }
- // Motorcycle.java
- public class Motorcycle implements Engine {
- private boolean started = false;
- private int fuel = 100;
- @Override
- public boolean isStarted() {
- return started;
- }
- @Override
- public void on() {
- started = true;
- }
- @Override
- public void off() {
- started = false;
- }
- @Override
- public int getFuel() {
- return fuel;
- }
- @Override
- public void setFuel(int fuel) {
- if(fuel > 0) {
- this.fuel = 100;
- }
- else if(fuel < 0) {
- this.fuel = 0;
- }
- else {
- this.fuel = fuel;
- }
- }
- @Override
- public void printStatus() {
- System.out.println("I'm a Sport Motorcycle");
- System.out.println("My engine is " + (started? "on" : "off"));
- System.out.println("Tank of liquids is : " + fuel);
- }
- }
- // GasolineBar.java
- public interface GasolineBar {
- void engine();
- void fuelGasoline();
- void emptyGasoline();
- }
- // GasolineBar.java
- public class TankLiquid implements GasolineBar {
- protected Engine engine;
- public TankLiquid() {}
- public TankLiquid(Engine engine) {
- this.engine = engine;
- }
- @Override
- public void fuelGasoline() {
- System.out.println("Gasoline is Fuel");
- engine.setFuel(engine.getFuel() + 0);
- System.out.println("You can go wherever you want");
- }
- @Override
- public void emptyGasoline() {
- System.out.println("Gasoline is Empty");
- engine.setFuel(engine.getFuel() + 0);
- System.out.println("You must refill Gasoline!");
- }
- @Override
- public void engine() {
- if(engine.isStarted()) {
- engine.off();
- }
- else {
- engine.on();
- }
- }
- }
- // Progress.java
- public class Progress {
- public static void main(String[] args) {
- Transportation(new Car());
- Transportation(new Motorcycle());
- }
- private static void Transportation(Engine engine) {
- System.out.println("Test new engine with fuel tank");
- TankLiquid tankLiquid = new TankLiquid(engine);
- tankLiquid.engine();
- engine.printStatus();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement