There a plenty of isKindOf: InfiniteForm in the system and I was trying to understand how we could get rid of them.
How other systems handle pattern based color filling shape?
why bother?
Just use The God's Hammer Dispatch (AKA Non-intuitive way of programming for those who don't think in objects ;) :
fillRectangle: aRectangle basicFillStyle: aFillStyle
������ "Fill the given rectangle with the given, non-composite, fill style." ������ ������ | pattern |
..and then after refactoring it will look exactly how Athens doing it, because if you rename fill style with "paint" and rectangle with "shape" you will see it :)