理系学生日記

おまえはいつまで学生気分なのか

忍者TOOLS

PoEAA: Front Controller

今日は Front Controller。 Front Controller は セキュリティや国際化など、リクエストに対する共通処理を一元的に行い、その後、リクエストをコマンドオブジェクトに引き渡すというパターンです。

Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler))

Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler))

Front Controller は以下の 2 つで構成されます。

  1. Web Handler: URL と Request からどのコマンドオブジェクトに処理を移譲するかを決める
  2. Command: リクエストに対するアクションを行う

Web Handler については、Interceptor として使うのが有用だとされています。そういえば、某フレームワークもそんな形でした。

Command については、Web Handler からリクエスト毎に生成されます。このため、Command をスレッドセーフに作る必要はありません。