...ing logging 4.0

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

結合度が高いクラス群には後で手を入れられない

前に作ったプログラムを改善しようと思った.
さてどこからいじり始めるかと「切れ目」を探してみたが,クラスの関係が集約ばかりで構築されているのでどこからも手が出せない orz


どうも僕は,

  1. イベント発生
  2. イベントハンドラが呼び出される
  3. ここからStateパターン
    1. Contextクラス(イベントハンドラの種類だけメンバ関数がある)の該当メンバ関数を呼び出し
    2. Stateクラス(イベントハンドラの種類だけメンバ関数がある)の該当メンバ関数を呼び出し
      1. グローバルなDocument(Model)クラスからデータを取得
      2. データを読み書き

みたいな構造のプログラムを書いてしまう癖があるようだ.
ユニットテストが書けるような独立したクラスになってないじゃまいか.
とりあえず解体する前にテストを書けるようにしたいができんのかなー,これ.

追記

いや待て何も説明できてないぞこれ.

追記

コードで示すことにして新旧書いている.

追記

忘れないように・・・.