|
锁定老贴子 主题:[中级偏下]想起一个面试题
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2007-03-07
刚才想起一道题,也许可以用来面试程序员。不妨来看看有没有效果。
题目很简单:有一个Composite模式的对象体系,如何把它转换成XML?请说出至少三种做法。 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2004-09-07
看来要失业了...其实想不太多的方法.. 这里就简单得用 print.
如果我把它变成对象用DOM创建 ,算不算一种的? [code:1] public abstract class Component{ public abstract void createXML(); public void add(Component component){}; public void remove(Component component){}; } public class Node extends Component { String _name; ArrayList children = new ArrayList(); public Node(String name) { this._name = name; } public void add(Component component) { children.add(component); } public void remove(Component component) { children.remove(component); } public void createXML() { System.out.println("<"+_name+">"); Iterator iterator = children.iterator(); while (iterator.hasNext()) { Component child = (Component) iterator.next(); child.createXML(); } System.out.print("</"+_name+">"); } } public class Text extends Component { String _name; public Text(String name) { this._name = name; } public void createXML() { System.out.println(_name); } } //测试打印 class Test { public static void main(String args[]){ Component node = new Node("node"); Component childnode1= new Node("childnode1"); Component childnode2= new Node("childnode2"); Component childnodeschild= new Node("childnode1\'s childnode"); Component childnodeschildtext = new Text("text"); node.add(childnode1); node.add(childnode2); childnode1.add(childnodeschild); childnodeschild.add(childnodeschildtext); node.createXML(); } } [/code:1] |
|
| 返回顶楼 | |
|
最后更新时间:2004-09-07
对的,也是一种做法。不过我这个题的意思就是要让candidate动脑筋想,具体哪种做法倒是其次的。
|
|
| 返回顶楼 | |
|
最后更新时间:2004-09-07
我可能没有看太懂这个题目,一想,就是按深度遍历和按广度遍历(因为composite和xml都是树型结构的),至于第三种,还是想不出(除非问题的本意不是这个方面)
|
|
| 返回顶楼 | |
|
最后更新时间:2004-09-07
不是这个意思,是说怎么用编程实现。
|
|
| 返回顶楼 | |
|
最后更新时间:2004-09-07
gigix 写道 不是这个意思,是说怎么用编程实现。
难道是说DOM,dom4j和JDOM这几种选择?还是你更侧重于实现思路? 偶曾经做过的一种就是把JTree的内容保存到一个对应的xml文件中去,用的是JDOM实现的。 不明白你这题有啥深刻的意义。 |
|
| 返回顶楼 | |
|
最后更新时间:2004-09-07
也没什么深刻的意义。我只是突然想起,有时候用Castor XML会很轻松,而且更灵活。
|
|
| 返回顶楼 | |
|
最后更新时间:2004-09-07
gigix 写道 也没什么深刻的意义。我只是突然想起,有时候用Castor XML会很轻松,而且更灵活。
拜托,这里看你帖子的不是candidate,而是网友啊。 说是叫人家实现三种,其实自己内心已经有了正确答案了。 “不过我这个题的意思就是要让candidate动脑筋想” 其实呢,能够和你想得一样的就是和你投缘的,不一样的呢? 这样的题目就不是招人的试题,而是找朋友了。 |
|
| 返回顶楼 | |
|
最后更新时间:2004-09-07
你也误会了,我也只是想起这么一种办法而已。
|
|
| 返回顶楼 | |
|
最后更新时间:2004-09-08
介绍介绍吧!
|
|
| 返回顶楼 | |













