>>462
>状態数が多くキー処理の数がものすごく多いのでなるべく分けておきたいなぁと。
いや別にリスナそのものは状態に応じた分岐までとかでもいいんじゃないでしょうか
(AKeyListener,BKeyListenerと分けたかったメソッドを用意して状態によってそれへの分岐だけとか)

その先は好きなだけ(機能もグループ分けしたりとかでメソッド分けするとか)どうにでもなるのでは?
そうすることでより見通しがよくなりそうに思えますけど

逆にadd/removeだと、状態が変わることとadd/removeのタイミングが保証できているかとか
疑問が出てきたりもするかも?