18 lines
976 B
Text
18 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.
|