Skip to content

Instantly share code, notes, and snippets.

@SiAust
Created September 2, 2020 13:13
Show Gist options
  • Save SiAust/250f91fbfe52311b31398aef50199453 to your computer and use it in GitHub Desktop.
Save SiAust/250f91fbfe52311b31398aef50199453 to your computer and use it in GitHub Desktop.
A simple example of Template pattern.
class Scratch {
public static void main(String[] args) {
Worker programmer = new Programmer();
Worker carpenter = new Carpenter();
programmer.goToWork();
carpenter.goToWork();
}
}
abstract class Worker {
public void goToWork() {
goingToWork();
doingWork();
returningHome();
}
private void goingToWork() {
System.out.println("Going to work.");
}
abstract void doingWork();
private void returningHome() {
System.out.println("Traveling home from work.");
}
}
class Programmer extends Worker {
@Override
void doingWork() {
System.out.println("Making a Springboot API.");
}
}
class Carpenter extends Worker {
@Override
void doingWork() {
System.out.println("Cutting long lengths of pine floorboards.");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment