关于CTE当前API无法支持从非引擎方式构建模板树

因隐藏了模板树的实现, 现在CommonTemplate( http://www.commontemplate.org)必需从引擎生成模板树.
但上次在回复严荣的博客时:
http://yananay.iteye.com/blog/180723
发现, 用户应该能用任意方式生成模板树才行,
也就是可以通过编程的方式,而非解析的方式构建模板树,
这样, 用户可以以其它方式存储或解析模板.
如:
List elements = new ArrayList();
elements.add(new TextImpl(“xxxxx”))
elements.add(new DirectiveImpl(“if”, expression))
Template template = new TemplateImpl(elements);

当用户想把模板保持为XML格式, 或将表达式保存成后缀表达式时,
就可以自行构建模板树.
从这一点看, 模板实体域的定义不应该放在engine包内,
而应单独列出一个language包, 包括指令与表达式的handler在内, 都应归入此包.
engine包只负责core包中工厂域(服务域)的实现.
这都是因为违返了”可配置,即可编程”的设计法则,
可以将模板解析当作读取配置,
那在没有配置时也应能通过直接编程的方式实现同等功能.

--------
这是发给 严荣桂林的探讨邮件, 在这里也贴一份.

你可能感兴趣的:(编程,xml,Blog,commontemplate)