>>10
その例なら、現実のDiceを考えればfacetはDiceの属性なんだから、Dice(int facet)コンストラクタが正解。

staticで用意するにしてもあくまでそれはユーティリティメソッドであって
内部で return new Dice(facet).shake(); するだけ。

・・・shakeってのが激しく気持ち悪いが