On slide 135, it says...
Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.

That's exactly what Class::StateMachine does: it re-blesses the objects effectively attaching a different event dispatch table when the state changes. There is no need to use mixins when you can do the real thing!

The only advantage that mixins could bring to the table is having objects with multidimensional states. But I don't thing this is something practical which anybody would like to use for anything serious.

BTW, Class::StateMachine::Declarative is been used to model state machines as complex as QVD::HKD::VMHandler::LXC.


In reply to Re: a State machine with Roles - possible? by salva
in thread a State machine with Roles - possible? by mascip

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.