今触っているプログラムはC++で書かれている。コードだけ見るとクラスがあったりしてC++のコードに見えるのだが、読んでてどうにもこうにも意味不明なコードが多い。なんでこんな意味不明なんだろう…。って思ってたんだがトイレでボーっとしてたら突然わかった。ああ、これC++で書かれているけどオブジェクト指向モデルは存在していないんだって。自分は基本的にこの辺のオブジェクト指向言語っていうのはオブジェクト指向モデルを記述するための道具としてしか使ってなく、ベースには必ずオブジェクト指向の設計が存在していたのだな。それに対してこのコードは、プログラムのためのC++。クラスはStructの延長であり、それぞれの役割や振る舞い、またそれぞれクラスの関係性みたいなもがまったく考慮されていないんだな。さらにその中にはCから移植してきてどう見ても意味を理解せずに書いてあるコードなんかも見受けられる。ずーっと感じていた違和感が少し氷解した。
さぁリファクタリングリファクタリング。ほんと楽しいわ。