ABSTRACT

Useful reactive classes that you create through instantiation of the fundamental behavioral inheritance meta-pattern frequently have rich state behavior and embed involved statecharts. Coming up with a good statechart that captures a nontrivial behavior is not easy. When you successfully design, implement, and debug a robust reactive class, you want to get the maximum mileage out of it by reusing it in other projects. Seldom, however, can you reuse a class as-is without modifications. You need to be able to inherit from it and refine its behavior in subclasses. Traditional OOP prescribes how to inherit attributes and refine individual class methods,1 but how do you inherit and refine entire state machines?