Saturday, August 17, 2002

State 模式和表格驅動法的比較

  在 william 譯的《Design Patterns》中,第 353 頁有歸納表格驅動做法和 State 模式的差別: State 模式旨在描述特定狀態之下的行為,表格驅動則專注於定義狀態的轉移。

  經我的詮釋,使用 State 模式的情況如下:

  • 當每一 state 所面對的所有外界訊息都相同時,就用 State pattern
  • 當狀態轉移條件更改的頻率不高時,可用 State pattern

  反之:
  • 各個 state 所面對的訊息,交集很少時,考慮用查表法。
  • 當狀態的數目、所有可能的訊息集合、或轉移條件等,會在 run time 改變,那 State pattern 就沒輒了,可以改用查表法。

0 comments: