Adapter Design Pattern

Run Settings
LanguageJava
Language Version
Run Command
class Client { public static void main(String[] args) { Car car=new Car(); Vehicle bicycle = new BicycleAdapter(new Bicycle() ); drive(car); drive(bicycle); } public static void drive(Vehicle vehicle){ vehicle.move(); vehicle.brake(); vehicle.backward(); } }
interface Vehicle { void move(); void brake(); void backward(); }
public class Car implements Vehicle{ @Override public void move(){ System.out.println("Car is moving forward"); } @Override public void brake(){ System.out.println("Car is stopped"); } @Override public void backward(){ System.out.println("Car is moving backward"); } }
public class Bicycle{ public Bicycle(){} public void pedal(){ System.out.println("Bicycle is moving forword"); } public void pedalBackward(){ System.out.println("Bicycle is stopped"); } }
public class BicycleAdapter implements Vehicle{ private Bicycle bicycle ; public BicycleAdapter(Bicycle bicycle){ this.bicycle=bicycle; } @Override public void move(){ bicycle.pedal(); } @Override public void brake(){ bicycle.pedalBackward(); } @Override public void backward(){ System.out.println("NotSupportedException"); } }
Editor Settings
Theme
Key bindings
Full width
Lines