Template Method
The Template Method is a behavioral design pattern that defines the program skeleton of an algorithm in the superclass but lets subclasses override specific steps of the algorithm without changing its structure.
The Template Method pattern is particularly useful when you want to define the steps of an algorithm but allow subclasses to provide their own implementations for some of those steps. It allows you to define the structure of an algorithm in the superclass and let subclasses provide concrete implementations for some of the steps.