There's more than one way to do things | |
PerlMonks |
a State machine with Roles - possible?by mascip (Pilgrim) |
on May 29, 2013 at 13:13 UTC ( [id://1035838]=perlquestion: print w/replies, xml ) | Need Help?? |
mascip has asked for the wisdom of the Perl Monks concerning the following question: In this presentation of design patterns in Ruby, on slide 140, Neal Ford uses Mixins to implement a simple State machine: a door which is opened or closed.
What we have closest from Mixins is Roles. So, we can probably do the same thing with Roles. To apply a Role at runtime we have Moose::Util::apply_all_roles() or ensure_all_roles(). But i didn't find how to un-apply a Role. If yes, then we can implement a State Machine with Roles. It's also possible with Class::StateMachine::Declarative. The latter is probably better for small state machines. I don't know if a Role-based state machine would have any advantages over it for more complex cases. As i'm not planning to use any of these two in the near future, this is more of a theoretical question. Me, procrastinating by learning more and more stuff that i don't use? Maybe ;-) EDIT: Later in this thread, a solution to unapply a Role
Back to
Seekers of Perl Wisdom
|
|