M2 Defining a plugin
A plugin is used to extend or modify a public method’s behaviour by applying code before, after, or around that observed method.
The first argument for the before, after, and around methods is an object that provides access to all public methods of the observed method’s class.
Note: The rest of the parameters for these functions are depending on the function type (before, after, around) – they are having a dynamic number of parameters.