先请看一段Ajax开发中大家都熟悉的代码:
1. out.println("<response>");
2. out.println("<status>ok</status>");
3. out.println("<id>" + folder.getId() + "</id>");
4. out.println("<path>" + folder.getPath() + "</path>");
5. out.println("<count>" + folder.getCount() + "</count>");
6. out.println("<pageSize>" + folder.getPageSize() + "</pageSize>");
7. out.println("<tags>" + folder.getTags() + "</tags>");
8. out.println("<visible>" + folder.isVisible() + "</visible>");
9. out.println("</response>");
为了方便下面的解释我加上了行号.
下面来给这段代码挑挑毛病吧:
1.易出错,第一句和第九句这样的成对代码容易漏写一个造成错误.
2.代码重复,二到八句,如果需要修改节点名称,需要修改两个地方.
3.字符串和代码混合,难以阅读.上面还是简单情况,如果是要从服务器端直接返回HTML时会引发维护噩梦.
其实很多地方都是这样写的,比如一些文章和教程,但那是为了行文方便,让读者容易理解,我们在标准工程不应该这样用.
其实要改善很简单,只要把思维从文本表述方式转变到XML表述方式就可达到目的.
我们只要把XML视为Dom中的节点,值,属性就可以了,具体来说就是用jdom或者dom4j制作一个辅助类,创建节点和Dom,最后返回Dom的xml形式的文本(dom4j: document.asXML();)就可以了,就这么简单.
题外话:有时实现很容易,关键是思想(切不可拿这句话压编码的程序员),对程序员来说,具有一种追求完美的精神,具备一双发现问题的眼睛,具有一个善于分析的大脑和乐于解决问题的手比良好的对API的记忆要难得很多,这也是一个设计者架构师应该具有的品质. Ajax本身是新瓶装旧酒,看看它现在对Web开发影响多大.
