逆に言うと、

    class AFactory extends Factory
    class BFactory extends Factory
    class CFactory extends Factory

    class AProduct extends Product
    class BProduct extends Product
    class CProduct extends Product

と定義 "できない" 場合、
または各インスタンスを Factory と Product として統一的に扱うことが "できない" 場合には
AbstractFactory は "使わないほうが" 良い。


あと、setNextFactory で Factory を入れるくらいなら、最初から Product をセットするべきかもと思った。