Solution #1 (take 3) - Apply Pluggable Selector Pattern by Kent Beck,...

...properly documented in his two books: TDD by Example (in Java) and The Smalltalk Best Practice Patterns.