リファクタリング…と言いたいが、動作しない時間が長過ぎてもはやそうは呼べない。(Martin Fawlerに怒られてしまう。)
今困っているのは、オブジェクト間のやりとりが複雑になりすぎているせいだ。このへんを何とかしないと機能追加ができない。今のところ考えているのは測定手順を表すオブジェクトを追加して複雑さを軽減する方法だ。レイヤーアーキテクチャーでは次の4つのレイヤー構造をとる(らしい)
- プレゼンテーション層
- ビジネス・ファサード層
- ビジネス・ロジック層
- データ・アクセス層
これを計測ソフトウェアに応用すれば
- GUI層
- 測定プロシージャ層
- 機能単位層
- ハードウェア・アクセス層
こんな感じになるだろうか?
これまでは測定プロシージャ層が無かったせいで処理が繁雑になっていた。例えば測定する範囲を変えた時に測定点数も同時に変えるのに、片方のクラスからもう一方へメッセージを伝達することで実現している。測定プロシージャ層を作らなかったのは巨大なクラスになりそうだったからなのだが、他の複雑さを軽減するためにはやむを得ない。一時的に巨大なクラスになるかもしれないが、またそれはあとでリファクタリングすれば良い。