Consider that in Java, one can /only /achieve polymorphic behavior across
objects by using /interfaces /or /inheritance/. In Smalltalk one can
achieve polymorphic behavior across objects just by *having them understand
the same message*.
The need to have complex schemes for the wiring of objects
In SmallTalk:-
1. Blocks (i.e. anonymous functions) means that one needs not necessarily
implement a /Class/ (MovieFinder), in order to vary alternative behavior,
unlike Java (before 8).
2. If one does want a number of "finders" (as Classes), then one will
typically see one "injected" (constructo
Your using an object-oriented language, why not use an object /domain model/?
Consider that Kristen Nygaard stated that an object-oriented "program
execution is regarded as a physical model, simulating the behavior of either
a real or imaginary part of the world." By physical model, he really is