Template Method Design Pattern

With this pattern, you define a method (algorithm) in an abstract class. It contains both abstract methods and non-abstract methods. The subclasses that extend this abstract class then override those methods that don’t make sense for them to use in the default way. It may sound complicated, but it definitely isn’t. It is also extremely useful. Look at
Back to Top