実験システムが中途半端なので継続して実装しているわけですが.
やっとこさ頂上が見えてきた感じ.
とにかく絶対に直さないといけないのは,「public 継承は is-a 関係」という原則を守れていない継承関係.
でも,これを単純に直すと継承関係の中で縦に並べていたクラスを横に展開しなければいけなくなって重複コードが増えてしまう.
これを消すためにテンプレートを使うこともできるはずだが・・・.
わかりにくくなるから無理にまとめないほうがいいのかもしれないなぁ.
もう一つ,一つのインタフェースクラスの中にあまり関係のないメソッドまで含まれてしまっている.
ちゃんと関係があるインタフェースごとに分割して,クラスの肥大化に対処しなければ.
こういうのを先を見越してパッと作れるようになりたいなあ.
うーん,スマートなソフトウェア設計の道はまだ遠い.