想象一下,您有一个objets的集合,并使用Visitor模式 - 您将如何处理从该集合中检索的null最优雅的?在浏览器模式中处理null的有效方法
1
A
回答
4
要么你的问题需要一些特殊类型的可见对象,要么你试图对访客模式施加太多的责任。 如果您确实有一定不能访问的有意义的对象,请尝试空对象模式。
public class NullElement implements Element {
public void accept(ElementVisitor visitor) {
// noop
}
}
+0
+1。比每个访问者检查null都好。当然,一个工作是计算空值的访问者不会工作 - 但你可以找到解决办法。 – 2011-03-22 00:16:07
1
我看不到不是把一个if (element != null) element.accept(visitor);
如果您使用的番石榴或其他东西的任何方式,你当然可以做一个filter
但似乎矫枉过正。
+1
或者,如果您将元素传递给访问者的'visit()'方法,那么首先检查'null'并跳过它。 – 2011-02-26 08:57:16
相关问题
- 1. 在IE浏览器中等效的选项卡式浏览器
- 2. 在JavaScript中关闭处理浏览器?
- 3. 在JSF中浏览器刷新处理
- 4. 用于处理移动浏览器的GWT模式
- 5. 多处理浏览器?
- 6. 在Internet Explorer中的浏览器模式
- 7. 桌面浏览器和移动Safari浏览器的封闭处理方式有所不同?
- 8. 带有foreach的浏览器模式%dopar%
- 9. 如何以编程方式处理浏览器对话框
- 10. 在浏览器中处理流JS内容的最佳方式是什么?
- 11. 在硒中处理多个浏览器的最佳方式是什么?
- 12. 处理在IE和Chrome浏览器
- 13. 在浏览器之外处理Webpack
- 14. Selenium - 在Microsoft Dynamics CRM中处理模式(儿童浏览器)窗口
- 15. 处理父/子的最有效方法
- 16. 创建方法未在浏览器中
- 17. 浏览器不处理如Firefox分块响应,Safari浏览器
- 18. 如何处理损坏的浏览器?
- 19. 浏览器上的错误处理
- 20. 处理来自浏览器的来电
- 21. 有没有办法改变制表符在浏览器中的呈现方式?
- 22. window.onerror函数在不同的浏览器上处理方式不同
- 23. 无法在模拟器浏览器
- 24. 在处理char数组时处理NULL char的正确方法
- 25. 以编程方式在管理模式下打开IE浏览器
- 26. Safari浏览器和谷歌浏览器的方向规模
- 27. 在逻辑子表达式中处理NULL的最佳方式
- 28. 在Javascript中是否有跨浏览器设置style.float的方式?
- 29. oracle表没有在特定模式的Toad模式浏览器中列出
- 30. 浏览头高效方式定义
为什么把空位放在首位呢? – 2011-02-26 09:56:44