精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (5)
|
|
---|---|
作者 | 正文 |
发表时间:2010-02-05
看不明白啥意思呢 你这是在干吗啊 也没个注释
|
|
返回顶楼 | |
发表时间:2010-02-05
最后修改:2010-02-05
abstract class Item{ abstract void print(Printer printer); } interface Printer { void printByX(...); void printByY(...); void printByZ(...); } class SomeConcreteClassX extends Item{ private Object aProperty; private Object anotherProperty; @Override void print(Print printer) { printer.printByX(...); } } edit: 我的想法是把这些打印策略逻辑封在一个Printer的implementation里面,然后通过集合(也就是楼上有几位说到的树,更广义的讲是一个集合)元素自身通过多态调用不同的逻辑。 在这个Printer的implementation中就可以对那段遍历进行封装成一个private的helper method |
|
返回顶楼 | |
发表时间:2010-02-05
最后修改:2010-02-05
calorie520 写道 非常感谢大家的回复,但主要是对NodeInfo的遍历方式根据不同层次需要递归多次,动态代理这种方式还是不能很好的处理递归层次的问题,不知道大家还有什么好的建议
private NodeInfo[] getNodInfo(Object id1) { /** * 这里写点例子给看一下.... 没代码.... 光说优化.... 我又不是业务代表, 不会 */ return null; } |
|
返回顶楼 | |
发表时间:2010-02-05
抛出异常的爱 写道 calorie520 写道 非常感谢大家的回复,但主要是对NodeInfo的遍历方式根据不同层次需要递归多次,动态代理这种方式还是不能很好的处理递归层次的问题,不知道大家还有什么好的建议
private NodeInfo[] getNodInfo(Object id1) { /** * 这里写点例子给看一下.... 没代码.... 光说优化.... 我又不是业务代表, 不会 */ return null; } 一点想法: 既然需要对不同的元素进行不同的访问,那么带返回值的callback结合visitor应该是可以解决的。 |
|
返回顶楼 | |
发表时间:2010-02-05
你这是在搞树啊
|
|
返回顶楼 | |
发表时间:2010-02-05
不太明白楼主想做什么,但是如果说要进行你这样的设计是不合理的,可以将重复的操作提取出来,进行重构
|
|
返回顶楼 | |
发表时间:2010-02-05
问题都描述不清楚,就想解决问题了。这年头怪人真多。
|
|
返回顶楼 | |
发表时间:2010-02-06
我想你之所以无法抽象出对不同递归层次的打印方法,是因为不同层次的数据类型不一样吧,建议你列一个数据结构的例子出来,便于大家了解业务,分析解法
就你现在的代码,可以看出好像是有game,team,ord,age 四种数据类型的不同打印方式 |
|
返回顶楼 | |
发表时间:2010-02-06
由于代码是别人写的,没有注释,对不住大家啦,增加了一下注释,大家继续看看
|
|
返回顶楼 | |
发表时间:2010-02-06
最后修改:2010-02-06
calorie520 写道 由于代码是别人写的,没有注释,对不住大家啦,增加了一下注释,大家继续看看
有种叫xpath工具 对于你的业务很有帮助 PS:正在学习使用jquery 对于这种事jquery很在行啊... |
|
返回顶楼 | |