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使うのにどうしていいのかわからないや。誰か教えてください。