论坛首页 招聘求职论坛

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

浏览 15236 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2004-09-06  
刚才想起一道题,也许可以用来面试程序员。不妨来看看有没有效果。

题目很简单:有一个Composite模式的对象体系,如何把它转换成XML?请说出至少三种做法。
   发表时间: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();;
	}
}
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 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics