Here we see the wiring up of the methods:
<beans>
<bean id="recorder" class="com.habuma.wiring.AbstractRecorder">
<replaced-method name="record" replacer="recordDevice"/>
<replaced-method name="playback" replacer="playbackDevice"/>
</bean>
<bean id="recordDevice"
class="com.habuma.wiring.TapeRecorder"/>
<bean id="playbackDevice"
class="com.habuma.wiring.SpeakerPlayback"/>
</beans>
This smells of pseudo-multiple inheritance. What do you think?