Mega Code Archive

 
Categories / Java Tutorial / Design Pattern
 

Template pattern with abstract class

public class TestTemplate {   public static void main(String args[]) {     Car automotiveRobot = new Car("Automotive");     Cooker cookieRobot = new Cooker("Cook");     automotiveRobot.go();     cookieRobot.go();   } } class Cooker extends Machine {   private String name;   public Cooker(String n) {     name = n;   }   public void getParts() {     System.out.println("Getting a flour and sugar....");   }   public void assemble() {     System.out.println("Baking a cookie....");   }   public void test() {     System.out.println("Crunching a cookie....");   }   public String getName() {     return name;   } } class Car extends Machine {   private String name;   public Car(String n) {     name = n;   }   public void getParts() {     System.out.println("Getting a carburetor....");   }   public void assemble() {     System.out.println("Installing the carburetor....");   }   public void test() {     System.out.println("Revving the engine....");   }   public String getName() {     return name;   } } abstract class Machine {   public final void go() {     start();     getParts();     assemble();     test();     stop();   }   public void start() {     System.out.println("Starting....");   }   public void getParts() {     System.out.println("Getting parts....");   }   public void assemble() {     System.out.println("Assembling....");   }   public void test() {     System.out.println("Testing....");   }   public void stop() {     System.out.println("Stopping....");   } }