Template Design Patterns (templates)
Abstract classaction{//define a behavior class Public Static FinalString work = "Work"; Public Static FinalString sleep = "Sleep"; Public Static FinalString EAT = "EAT"; Public Abstract voideat (); Public Abstract voidsleep (); Public Abstract voidWork (); Public voidcommand (String str) {Switch(str) { Case"Work": This. Work (); Break; Case"Sleep": This. Sleep (); Break; Case"Eat": This. Eat (); Break; } }}classPeopleextendsaction{ Public voidsleep () {System.out.println ("People are sleeping."); } Public voideat () {System.out.println ("People are eating."); } Public voidWork () {System.out.println ("People are working"); }}classPigextendsaction{ Public voidsleep () {System.out.println ("The Pig is sleeping."); } Public voideat () {System.out.println ("Pigs are eating."); } Public voidWork () {}}classRobotextendsaction{ Public voidsleep () {} Public voideat () {System.out.println ("The robot is replenishing energy."); } Public voidWork () {System.out.println ("The robot is working"); }} Public classtest{ Public Static voidMain (String args[]) {Fun (Newpeople ()); Fun (NewRobot ()); } Public Static voidFun (Action Act) {Act.command (ACT). work); Act.command (Act. SLEEP); Act.command (Act. EAT); }}
Template mode of Java mode--abstract class