構成変えていいなら、BをAの内部に入れ子にして
hogeでself.class::B.newとでもしてやるのがいいと思う

ところでこの場合Aに対してのBってなんていうの?内部クラス?入れ子クラス?