今日は Front Controller。 Front Controller は セキュリティや国際化など、リクエストに対する共通処理を一元的に行い、その後、リクエストをコマンドオブジェクトに引き渡すというパターンです。
Front Controller は以下の 2 つで構成されます。
- Web Handler: URL と Request からどのコマンドオブジェクトに処理を移譲するかを決める
- Command: リクエストに対するアクションを行う
Web Handler については、Interceptor として使うのが有用だとされています。そういえば、某フレームワークもそんな形でした。
Command については、Web Handler からリクエスト毎に生成されます。このため、Command をスレッドセーフに作る必要はありません。