最終的に HTML を出力する場合であっても、一度論理的な View に変換した後で、それを実際の View に変換するという 2 ステップを踏むパターンを、文字通り Two Step View と呼びます。 JVM の中間コードだったり、LLVM の IR みたいなもの。主なメリットは、個々のページで共通的な箇所を論理的な View で抽象化でき、全体のページのレイアウト等を変える等しやすい点。
最初に読んだときはあまりイメージが分かりませんでしたが、なるほど、
- Action でドメイン情報を含んだ XML を出力し
- その XML を XSLT で論理 Screen (論理的な View) の XML に変換し、
- その XML をさらに XSLT で HTML に変換する
という例や、
- 論理 Screen を Template View を使って `
として構成して、 - それをさらに HTML に変換する
という例が提示されていて、なるほど〜〜〜と思いました。抽象化というのはそういうものですが、現実を抽象化できない抽象化はもはや抽象化ではないのであって、うまく抽象化できないと死ぬパターンですねこれ。 また、2 ステップによる View の構築は、エンジニアがデザインに巻き込まれることを意味しており、このあたりがデメリットであるというのも本文の中で語られています。