想象一下,您有一個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