普通にDancerFactoryでいいような気がする。
配列っていうか簡易DBみたいなのに
各Dancerが受け入れられる処理を
書き込んでおけばいいのではないだろうか。

各Dancerにはintで一意のIDを持たせておいて
簡易DBを使ってIDを求めて
switch文で列記されたnewに飛べばいいと思う。