Page駆動アーキテクチャのソースを書いてみた。
Pageクラスを使うことでプレゼンテーション層の開発がシンプルで簡単になり、モデルの変換のコストはDxoでほとんどなくすことができる。そのため、今後は、Page駆動アーキテクチャを使ったほうが開発は楽になる。
何かすっごい良さそうなんで、試しにソース書いてみた。
emp.html
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>emp</title> </head> <body> <form id="updateForm"> id:<input type="text" id="id"/> <br/> name:<input type="text" id="name"/> <br/> <input type="submit" value="update" id="doUpdate"/> </form> </body> </html>
EmpPage.java
package examples.teeda.web.emp; public class EmpPage { // properties private Integer id; private String name; private EmpDxo dxo; private EmpLogic logic; // methods public String doUpdate() { logic.update(dxo.convert(this)); return null; } // accessor public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void setEmpDxo(EmpDxo dxo) { this.dxo = dxo; } public void setEmpLogic(EmpLogic logic) { this.logic = logic; } }
EmpDxo.java
package examples.teeda.web.emp; public interface EmpDxo { public Emp convert(EmpPage page); }
EmpLogic.java
package examples.teeda.web.emp; public interface EmpLogic { public int update(Emp emp); }
すっげー。PageとDxoの組み合わせがナイス。なるほどthisかー。
logic.update(dxo.convert(this));
リクエストパラメータ情報をhtmlとPage間で一対一で記述出来のが分かり易い。
Pageをdxoにthisで渡す。たったこれだけでDto、Action、Serviceが一気に要らなくなる。
dxoで解決出来ないミスマッチあったら手で書けばいいし。Page駆動アーキテクチャすっげー分かりやすい。
レイヤーの分離完璧。そして学習簡単。
でもteeda-html-example-beta-1でDxo使うのにどうしていいのかわからないや。誰か教えてください。