Template Method
Example - Building a house
abstract class HouseTemplate {
public void build() {
buildFoundation();
buildWalls();
buildWindows();
buildRoof();
}
protected abstract void buildFoundation();
protected abstract void buildWalls();
protected abstract void buildWindows();
protected abstract void buildRoof();
}
class WoodenHouse extends HouseTemplate {
@Override
protected void buildFoundation() {
System.out.println("Foundation");
}
@Override
protected void buildWalls() {
System.out.println("Wooden Walls");
}
@Override
protected void buildWindows() {
System.out.println("Windows");
}
@Override
protected void buildRoof() {
System.out.println("Wooden Roof");
}
}Default implementations
Last updated