デザパタの問題になってしまうかもなあ

Facadeパターンとかどうよ

BをクライアントにしてCをFacadeオブジェクトにする
この方法だとCのメッセージを必要とするサブクラスが後から増えても容易に対応できる