If your Trained::Monkey object gets passed a Widget object, and is expected to do something with the Widget object, but only if the Widget object is in the correct state; then it should be the Widget object which makes the decision about whether it's in the right state, not the Trained::Monkey object.
Why? Because you may eventually subclass Widget to create a Widget::Complicated where the assessment of its state isn't as simple. You want to avoid having to give your monkey extra training.
In reply to Re: Programming patterns
by tobyink
in thread Programming patterns
by McA
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |