Banktemplatemethod Abstract class
Public abstract class Banktemplatemethod {//Concrete method public void Takenumber () {System.out.println ("queue");} public abstract Void Transact (); Transact specific business//hook method public void Evaluate () {System.out.println ("Feedback Score");} Public final void process () {//Template Method!!! This.takenumber (); This.transact (); This.evaluate ();}}
Test class Client
public class Client {public static void main (string[] args) {Banktemplatemethod BTM = new Drawmoney (); btm.process ();//Using Anonymous Inner class Banktemplatemethod btm2 = new Banktemplatemethod () {@Overridepublic void Transact () {SYSTEM.OUT.PRINTLN ("I want to save! ");}}; Btm2.process (); Banktemplatemethod btm3 = new Banktemplatemethod () {@Overridepublic void Transact () {SYSTEM.OUT.PRINTLN ("I want to manage! I have 20 million Korean coins ");}; Btm3.process ();}} Class Drawmoney extends Banktemplatemethod {@Overridepublic void Transact () {SYSTEM.OUT.PRINTLN ("I want to withdraw money!!!") ");}}
23 Java Design Patterns of the "behavioral mode" template method pattern