论坛首页 招聘求职版 面试秘籍

[中级偏下]想起一个面试题

浏览 8194 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2007-03-07
刚才想起一道题,也许可以用来面试程序员。不妨来看看有没有效果。

题目很简单:有一个Composite模式的对象体系,如何把它转换成XML?请说出至少三种做法。
   
最后更新时间: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]
   
0 请登录后投票
最后更新时间:2004-09-07
对的,也是一种做法。不过我这个题的意思就是要让candidate动脑筋想,具体哪种做法倒是其次的。
   
0 请登录后投票
最后更新时间:2004-09-07
我可能没有看太懂这个题目,一想,就是按深度遍历和按广度遍历(因为composite和xml都是树型结构的),至于第三种,还是想不出(除非问题的本意不是这个方面)
   
0 请登录后投票
最后更新时间:2004-09-07
不是这个意思,是说怎么用编程实现。
   
0 请登录后投票
最后更新时间:2004-09-07
gigix 写道
不是这个意思,是说怎么用编程实现。


难道是说DOM,dom4j和JDOM这几种选择?还是你更侧重于实现思路?
偶曾经做过的一种就是把JTree的内容保存到一个对应的xml文件中去,用的是JDOM实现的。

不明白你这题有啥深刻的意义。
   
0 请登录后投票
最后更新时间:2004-09-07
也没什么深刻的意义。我只是突然想起,有时候用Castor XML会很轻松,而且更灵活。
   
0 请登录后投票
最后更新时间:2004-09-07
gigix 写道
也没什么深刻的意义。我只是突然想起,有时候用Castor XML会很轻松,而且更灵活。


拜托,这里看你帖子的不是candidate,而是网友啊。

说是叫人家实现三种,其实自己内心已经有了正确答案了。

“不过我这个题的意思就是要让candidate动脑筋想”

其实呢,能够和你想得一样的就是和你投缘的,不一样的呢?

这样的题目就不是招人的试题,而是找朋友了。
   
0 请登录后投票
最后更新时间:2004-09-07
你也误会了,我也只是想起这么一种办法而已。
   
0 请登录后投票
最后更新时间:2004-09-08
介绍介绍吧!
   
0 请登录后投票
论坛首页 招聘求职版 面试秘籍

跳转论坛:
JavaEye推荐