2001/03/15
実践的オブジェクト設計の話3
昨日の続きです。
いよいよ詳細設計に入ります。これらのクラスをノートに四角で囲って記述します。そうしたらその下に必要そうな機能を記述し、その入出力を列記します。アプリケーションゲットに必要な機能は「既に起動されているアプリを取っておく」「そのリストにないアプリがあったらその表示場所を返しつつ、終了されたアプリを削除する。そんなものなければNULLを返す」。画像一定時間表示に必要な機能は「表示位置と秒数と表示する画像をもらって表示する。自動的に消去する」です。魔導タスクトレイに必要なのは「定期的にアイコンを変える」「アプリケーションが起動されたかチェックする」「メニューから画像と表示秒数を設定する画面を出す」というところでしょうか。レジストリの読み書きは「レジストリに指定されたデータを書く」「レジストリから指定されたデータを読む」だけです。あれ?さらにクラスがもう一つ必要になりました。基本設計で書いた「画像を自由に変えられる」と「表示時間を変えられる」を行い魔導タスクトレイから呼び出される「魔導コンフィグ」を追加しておきましょう。あとはどのクラスがどのクラスを呼ぶのかを考えて、それを矢印で結ぶだけで詳細設計は完了です。場合によっては画面の模式図を書いてもいいでしょう。そうしたらこれをもとにプログラミングとデバッグを行い、完成。機能が増えることもあるでしょうが、そのときは詳細設計に追加するのを忘れずに。例えば「魔導タスクトレイ」の「一時的に効果を無効にする機能」。
これからが重要です。今作ったクラスのクラス名と機能とファイル名をテキストファイルに記載しておきます。そうしたら、クラスを専用のフォルダに移動します。次に似たようなことをしようと思ったときはテキストファイルを開き、ただ検索すればいいのです。これだけで六割の再利用性を得られます。実は上のアプリケーションは「画像一定時間表示」は「画像表示」から、「魔導タスクトレイ」は「タスクトレイ」からの派生、「レジストリの読み書き」はそのまま再利用で作りました。


 

Topへ