2001/03/14
実践的オブジェクト設計の話2
昨日の続きです。
洒落ではありませんが、昨日は機能仕様(しかもたった一行だけ!)を書いたところで終わってしまいました。あれを基本設計に落とします。この機能仕様を実現するために必要な機能をノートに箇条書きします。実行される順から考えるとぱっと思いついたことだけ書くと「アプリケーションの起動取得」「アプリケーションの表示場所取得」「画像の表示」「画面の消去」あたりが思いつきます。これ以外に「タスクトレイ常駐」とか「画像を自由に変えられる」「表示時間を変えられる」「レジストリに画像保存」あたりが追加されるでしょうか。この行為自体はオブジェクト指向方法論から大きく外れてはいません。オブジェクト指向方法論を知らない人にはわからないかも知れませんが、文章から抽象化される事象を取り出すところを省いて、抽象化された事象を取り出したところから始めているだけです。うわ、わかりにくい。上の詭弁は忘れて結構です。箇条書きされた機能をもとに今度はそれをクラス分類します。必要な機能を大きくまとめると「アプリケーションの起動と表示場所取得」「好きな画像の表示、一定時間後の消去」「タスクトレイ常駐」「レジストリの読み書き」の四つにわかれます。この分け方は実は設計においてもっとも重要なことだったりしますが、私のやり方は「似たような言葉があるものはまとめる」という方針で行っています。もっと言ってしまうとその後につけるクラス名が長くならず、かつ悩まないで済むようにわけています。舐めてると思うかも知れませんが、これが実は結構効果的だったりするのです。特に再利用性のことを考えるとクラス名が単純であればあるほどいいのです。わけたそれぞれの機能をクラスとして、適当な名前をつけます。これはわかれればいいので「アプリケーションゲット」「画像一定時間表示」「魔導タスクトレイ」「レジストリ操作」で充分でしょう。先ほどの箇条書きから線を引っ張ってちゃんと機能を網羅しているか確認したらこれで基本設計は終わりです。
明日に続きます。


 

Topへ