コマンドパターンの例をたくさん見てきました
しかし、それらはすべてデスクトップアプリケーションのコンテキストにある傾向があります。
つまり、「コマンドは、操作を呼び出すオブジェクトを、その実行方法を知っているオブジェクトから切り離します」
純粋なHTML(ただしZend Framework MVC駆動)Webサイトのコンテキストでは、現在のページを更新して特定のコマンドを呼び出すユーザーの「リンクをクリック」を考えています。ユーザーがサイトのどのページにいるかは関係ありません。
例として、ブログアプリでは次のようになります。
すなわち
両方で「ブログ投稿を削除」などのHTMLフォームボタンを表示できるようにするには、次のようにします。
- 「リストページ」(ブログ投稿を一覧表示)
「ページの編集」(ブログ投稿の編集)
「リストページ」のフォームアクションは「リストページ」を指します
- 「ページの編集」のフォームアクションは「ページの編集」を指します
ZFMVCのコントローラー部分は一種のコマンドパターンだと思います。ただし、これはURLを特定のコントローラーにルーティングします。また、コマンドアクションを特定のコマンドレシーバーに同時にルーティングしようとしています。
コマンドパターンはここに適用されますか、それともデスクトップアプリやAJAX対応サイトなどの豊富なグラフィカルユーザーインターフェイスのコンテキストでのみ本当に役立ちますか?