flat7th

memo/20060511

created 2006-05-11 modified 2006-05-15 

ステートパターンとVTEC

デーモンプロセスが状態を持つ場合のはなし。
(個別のコネクションの状態ではなく、プロセスとしての状態。
ホスト間共有メモリデーモンで「コーディネータ役」状態と「ワーカ役」状態と「役割未定」状態、とか
プロトコルデーモンで「初期設定未投入」状態と「本稼動」状態、とか)

プロセスの状態によって、受け付けるメッセージが全く変わるような場合、
ディスパッチャにステートパターンを適用するとうまくいく。
受け付ける入り口自体はなんら変わらないけど、受け付けたメッセージを振り分ける部分
(ディスパッチャ)が状態ごとに1個のクラスになっていて、状態が変わったら別の
ディスパッチャに切り替わる、と。

C言語風に言うと、関数配列を状態ごとに用意しておいて、ポインタ経由で利用することにより
関数配列を切り替える、と。


で、これってVTECと一緒じゃん、と思った。

VTECだと、低回転域、中回転域、高回転域でカムが切り替わり、
バルブタイミングが変わるのでエンジンの応答性がガラリと変わる。

似てるなぁと。それだけ。