null-object-pattern

    2熱度

    1回答

    我想知道在某些情況下,null對象模式實際上是否會使調試更加困難。例如,如果一個方法返回一個「空」對象而不是null,那麼它不會拋出錯誤。這在可靠,乾淨的代碼方面很好,但是不能代表現在有一個空的對象被使用,基本上什麼都不會導致意外的錯誤。現在沒有任何東西可以幫助找到問題,而不是讓程序員指出問題。

    -1熱度

    2回答

    我使用模板元編程建立一個實體組分系統我不斷收到任何Cannot convert from [base type] to [type user requested]&或Cannot convert NullComponent to [type user requested]&錯誤: class Entity { public: Entity() = default; ~Enti

    2熱度

    1回答

    我試圖編寫一個NullObject創建方法,其中我傳入一個實現了ICreateEmptyInstance接口(即空)的類名稱,並引導其屬性查找實現ICreateEmptyInstance的其他類,並將創建這些的「空」實例。 public interface ICreateEmptyInstance { } public static class NullObject { publi

    2熱度

    1回答

    我有這樣的事情: boost::function<void(void)> redStyle = boost::bind(colorStyle, "red"); boost::function<void(void)> blueBlinkingStyle = boost::bind(animatedStyle, "blue", BLINKING); 這是正確的方式來定義一個nullStyler

    0熱度

    2回答

    我試圖使用從番石榴空的對象在下面的方法: private void display(Optional<String> message) { ... } 的方法,其中我打電話的方法顯示(..)看起來是這樣的: if(...) { display(Optional.of("hello"); } else { display(Optional.absent());

    1熱度

    3回答

    使用構造器注入,依賴被注入到消費者這樣的(至少我希望我理解正確的話): public class SomeConsumer { private IDependency someDependency; public SomeConsumer(IDependency someDependency) { if (someDependency != null)

    1熱度

    1回答

    到現在我已經隨處可見的步驟創建空對象模式,例如在BST去除null檢查,情況如下: 創建一個接口節點 創建兩個實現接口節點的類。其中之一將是real_Node,其他將爲null_Node。 使用這些類,可以在創建樹時在BST類中刪除空檢查。 現在我想知道,是否有其他方法可以做到這一點,例如, 我們能否使用在上述步驟(1)只有類,即實現無接口Null對象模式,我們可以使用節點類代替節點接口

    0熱度

    2回答

    我甚至不確定是否有問題,但我不喜歡我的text_fields和text_areas作爲empty string保存在數據庫中,而不是nil。 我正在玩空對象模式,只是實現了,如果我創建一個配置文件,但不填寫位置字段,然後調用<%= @user.profile.location.upcase %>然後它不爆炸,因爲位置是一個字符串,即使它是空的。 這是軌道公約有這種方式嗎?如果是這樣,那爲什麼?這很

    3熱度

    1回答

    我目前正在建立一個通用的狀態機,我使用StateMachine的構造函數與一個通用參數來設置創建時的回退狀態,如果有沒有什麼機器可以做。 我想知道是否有兩個構造函數是不好的做法,一個是狀態機本身在需要創建新狀態對象時使用的構造函數,另一個是第一次初始化狀態機時使用的構造函數默認回退狀態)。 我最大的疑問:我濫用泛型,有沒有時間使用泛型不應該? 狀態機的創建: //The generic param

    1熱度

    1回答

    我正在寫一個軌道視圖測試,讓說的觀點是這樣的: show.json.rep r.element :user, @user do |u| r.element :id, u.id r.element :somefield1, u.somefield1 // a lot of fields here r.element :somefield100, u.somef