「構造化手法」の場合、関数の上下関係に注目して設計していたが、「オブジェクト指向」では、クラスの役割という概念が新たに加わり、どのクラスがどの機能を持つか考える。ここをしっかり考えておかないと、たちまち複雑怪奇でブクブク太ったメンテナンス性の極めて低い「巨大クラス」が出来上がってしまう。
始めに、どのクラスがどの役割を担うかを考え、役割にふさわしいメソッドとパラメタを所有させ、その上でクラス間の関連を定義していく。
しかし、実装を進めていく過程で、想定していなかった事象が起こり、最初に決めた構造が破綻することがある。その時、あくまで当初設計した構造を維持しようとすると、構造にひずみが生じ、シンプルな設計が維持できなくなる。そこで、「あるべき姿」を考え、構造を変更し、よりシンプルで分かりやすい構造へと変化させる。
その結果、開発者には分かりやすいが、第三者からみると、分かりにくい設計になる可能性があることを、理解しておく必要がある・・・。
言い訳終了。
がんばって開発したものの、設計思想が理解できなかったり、助長に思える部分があり、自分なりにシンプルで分かりやすいコードを心がけて開発したのだが、あまり納得の行く出来にはならなかった・・・。
Windowsアプリのスキルと、CppUnitの設計思想に熟知していれば状況は変わったかもしれないが、「趣味の日曜プログラマ」の限界と割り切り、「動作することを」を最優先とした結果である。
テスト一覧から項目を選択し、実行する所まで完成した。
全項目を選択して実行
クラス1つ選択して実行
テストケース1つ選択して実行(成功)
テストケース1つ選択して実行(失敗)
とりあえず、下記にファイルを置いた。興味がある方はどうぞ。
■TestRunnerEE rev.11
あとは「エラーメッセージ表示」を残すのみとなった。
それができたら、DLL化を目指す予定。
0 件のコメント:
コメントを投稿