19 lines
976 B
Text
19 lines
976 B
Text
|
Method modifiers are a powerful feature from the CLOS (Common Lisp
|
||
|
Object System) world. In its most basic form, a method modifier is just
|
||
|
a method that calls $self->SUPER::foo(@_).
|
||
|
|
||
|
Class::Method::Modifiers provides three modifiers: before, around, and
|
||
|
after. "before" and "after" are run just before and after the method they
|
||
|
modify, but can not really affect that original method. "around" is run in
|
||
|
place of the original method, with a hook to easily call that original
|
||
|
method.
|
||
|
|
||
|
One clear benefit of using Class::Method::Modifiers is that you can
|
||
|
define multiple modifiers in a single namespace. These separate modifiers
|
||
|
don't need to know about each other. This makes top-down design easy.
|
||
|
Have a base class that provides the skeleton methods of each operation,
|
||
|
and have plugins modify those methods to flesh out the specifics.
|
||
|
|
||
|
In short, Class::Method::Modifiers solves the problem of making sure you
|
||
|
call $self->SUPER::foo(@_), and provides a cleaner interface for it.
|