...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

ひさびさ・アゲイン

今日と昨日はC++にどっぷり浸かったわいな.

直交した機能をポリシークラスに分解するとか,多態性を使うべきとかで,リファクタリングするとどうしてもクラスが増えていくなぁー,と思ってたら,重要なことを忘れていた.

  • 変更箇所を一箇所に集めよ!

後で合成するために分割するとはいえ,どんどん分解してどうするんだと.そりゃあクラスの数が増えていくだろうと.今回は共通する部品およびポリシーが少ないから,クラスが増えてしまうのだ.

だったら,新しくインタフェースを定義して,中心になるクラスでそれを実装すればよかったんだ.わざわざテンプレートを使ってポリシーに分割するなどというややこしいことをするまでもない.純粋にOOPを実践すればよかっただけだった.なーんだ.

ただ,1つのクラスの役割が大きくなってメンバ関数が増えたせいで,状態管理の必要が出てきた.これはこれでなんとかせねばならん問題だよなあ.うーむ.