Skip to content

Instantly share code, notes, and snippets.

@kkdeok
Created August 20, 2020 05:45
Show Gist options
  • Save kkdeok/d0d35315a62252f73a1a95570ae762a9 to your computer and use it in GitHub Desktop.
Save kkdeok/d0d35315a62252f73a1a95570ae762a9 to your computer and use it in GitHub Desktop.
Template Method Pattern
public abstract class People {
public void printDailyRoutine() {
wakeUp();
work();
exercise();
}
public abstract void wakeUp();
public abstract void work();
public abstract void exercise();
}
public class Me extends People {
@Override
public void wakeUp() {
System.out.println("wake up at 07:00 am")
}
@Override
public void work() {
System.out.println("working as a software engineer")
}
@Override
public void exercise() {
System.out.println("bulk up")
}
}
public class You extends People {
@Override
public void wakeUp() {
System.out.println("wake up at 09:00 am")
}
@Override public void work() {
System.out.println("working as a coffeeshop manager")
}
@Override
public void exercise() {
System.out.println("running")
}
}
public static void main(String[] args) {
People someone = args[0].equals("me") ? new Me() : new You();
me.printDailyRoutine();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment