Hey guys,
I'm not against using InteractiveObject in the implementations or in the utility, but I'd like to keep IEventDispatcher on the interface for right now. I guess we could create another recognized interface with InteractiveObject, but I don't want to mix terminologies by calling it a controller or addon or whatever. We could just call it InteractiveBahavior or something. Down the line if we find that every Behavior uses InteractiveObject we can adjust, but I'm finding that targeting IEventDispatcher makes unit testing really easy. Take the
ButtonBehaviorTest for example, you just extend EventDispatcher, dispatch some events and see if the right thing happens. It's not that it couldn't be done in another way, but it's a valid use case. Easy unit testing for component functionality is a big selling point.
I'd also like to play with some examples using PaperVision's DisplayObject3D before we cut off the possability entirely. I know these are outside use cases, but I'm just saying let's keep them open for now and reevaluate down the road. Plus, referencing concrete classes on an interface raises a little warning flag in my "you're going to regret this" center of the brain.
- Ben