>>22
ファクトリの実装の仕方が問題だと考えてます。

import kaihatsu.B;
public class HogeFactory{
 public Hoge create(){
  return new Hoge();
}

ここで、Hogeは kaihatsu.A、kaihatsu.B ともに実装していて
それを使う人は意識せずにつかうことが可能なのですが
このHogeFactoryをコンパイル時に差し替えるのに
いい方法がないかと考えてるところです。