Mega Code Archive

 
Categories / Java Tutorial / Design Pattern
 

Action with the Strategy Pattern

public class MainClass {   public static void main(String[] args) {     Jet jet = new Jet();     jet.setGoAlgorithm(new DriveEngine());     jet.go();     jet.setGoAlgorithm(new FlyFastEngine());     jet.go();     jet.setGoAlgorithm(new DriveEngine());     jet.go();   } } abstract class Vehicle {   Engine goa = null;   public Vehicle() {   }   void setGoAlgorithm(Engine goa) {     this.goa = goa;   }   public void go() {     this.goa.go();   } } class Jet extends Vehicle {   public Jet() {   } } interface Engine {   public void go(); } class FlyingFastEngine implements Engine {   public void go() {     System.out.println("Now I'm flying fast.");   } } class DriveEngine implements Engine {   public void go() {     System.out.println("Now I'm driving.");   } } class FlyFastEngine implements Engine {   public void go() {     System.out.println("Now I'm flying fast.");   } }