>>967 の例と比較するけど、プログラム上で行う場合には

setNextClassName("Aclass");
setNextClassName("Bclass");
setNextClassName("Zclass");

setNextFactory(new AFactory());
setNextFactory(new BFactory());
setNextFactory(new ZFactory());

これらに差があるとも思えない。


もし、ユーザ側からクラス名を受け取り、そのインスタンスを作成したいのならば
リフレクションまたは switch 文が確実。