クラスTowerの設計

------------------------------------

「ハノイの塔」を作る第一歩として、その“要素となる物”のクラスを考えることにしました。

「ハノイの塔」の要素として「塔」と塔に積まれる「リング」の二つを思い付きました。

この二つをクラスにすることを考えたのですが、どうも「塔」だけをクラスにすれば「 ハノイの塔」は実現できそうだったので「塔」のクラス、Towerクラスを考えることにしました。

------------------------------------

Towerに何ができるか考えたところ

があれば良いだろうと思いました。

これを実装するクラスを考えるわけですが、最後の二つ

に注目すると「一番最後に入れたものを一番最初に取り出す」という機能があれば実現できることが解ります。

------------------------------------

この「一番最後に入れたものを一番最初に取り出す」=「ラスト・イン・ファースト・アウト」の機能は「スタック」と呼ばれるものらしいので、この機能がJavaのクラス・ライブラリにないか探しました。

するとjava.util.Vectorのサブクラスでjava.util.Stackというクラスがあり、それを調べると上記の四つの機能はjava.util.Stackあるいはjava.util.Vectorのメソッドで実現できることが解りました。

ということで、結局クラスTowerは作成せず、java.util.Stackをそのまま用いることにしました。

------------------------------------

前の項目へ次の項目へ

「メイキング・オブ・ハノイの塔」のページへ