Encapsulate the structure of an algorithm or a process, let the user customize some of the steps or add optional hooks.
Examples
Webpack Plugins
React Hooks