过长的函数拼接可读性差,也就是说,代码没有表达性。
给楼主一个DSL的传送门,很可以没有对应中文版 http://en.wikipedia.org/wiki/Domain-s...
如果你不喜欢面对对象的语法:
query().from("user")
.where(
(user.firstName.like("Bob")).or(user.firstName.like("Ann")))
.orderBy(user.firstName.asc())
.list(user);
面向对象语法:
InsertSQL sql = new InsertSQL();
sql.insertInto("students")
.value("id", new Integer(id))
.value("name", name)
.value("gender", gender);
-----------------------------------
最后赠送你一个我以前用过的DSL
/**
* 配置路由规则
*/
RouteBuilder builder = new RouteBuilder() {
public void configure() {
from("/user").filter(header("language").isEqualTo("zh")).to("/zh/user");
from("/user/edit/3").choice()
.when(header("foo").isEqualTo("bar")).to("queue:d")
.when(header("foo").isEqualTo("cheese")).to("queue:e")
.otherwise().to("queue:f");
}
};
具有表达性的代码是:做什么,而不是怎么做。