锁定老帖子 主题:[中级偏下]想起一个面试题
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2004-09-06
题目很简单:有一个Composite模式的对象体系,如何把它转换成XML?请说出至少三种做法。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2004-09-07
看来要失业了...其实想不太多的方法.. 这里就简单得用 print.
如果我把它变成对象用DOM创建 ,算不算一种的? 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();; } } |
|
返回顶楼 | |
发表时间: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
介绍介绍吧!
|
|
返回顶楼 | |