Factory Methodパターンを適用すると

while(xxBean.getEndflag){
  switch(xxBean.getNextClassName){
    case Aclass:
      Factory aFactory = new Factory();
      AProduct aProduct = aFactory.create();
      aProduct.execute(xxBean);
      break;
    case Bclass:
      Factory bFactory = new Factory();
      BProduct bProduct = bFactory.create();
      bProduct.execute(xxBean);
      break;
    case Zclass:
      Factory aFactory = new Factory();
      ZProduct zProduct = zFactory.create();
      zProduct.execute(xxBean);
      xxBean.setEndflag(false);
      break;
  }
}
のように、生成されるクラス毎にFACTORYとPRODUCTの実装クラスを
定義する必要があるのでしょうか?なんだかクラスがいっぱいできてメンテナンスが大変そう
なんですがそういうものなんですよね?認識があっているか不安です。