問題タブ [null-object-pattern]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
166 参照

java - 非ジェネリックなコンテキストで Guava Optionals を使用するには?

次の方法でグアバの Null-Objects を使用しようとしています。

メソッド display(..) を呼び出しているメソッドは次のようになります。

現在、次のコンパイラ エラーが発生しています。

私が見つけた唯一のコンパイルの回避策は、使用することです

それ以外の

非ジェネリックなコンテキストで Optionals を使用している場合、他に可能性はありませんか?

0 投票する
1 に答える
2664 参照

ruby-on-rails - Rails ビュー テストのモデルで特定の属性をモックするにはどうすればよいですか?

Railsビューのテストを書いています。ビューが次のようなものだとしましょう:

show.json.rep

idここで、それが生成する json をテストし、フィールドに興味を持ちたいと思います。

私のテストコードが次のように書かれている場合:

次のようなエラーが報告されます。

somefieldX興味のないすべてのフィールドをモックしたくないので、次のことを試しましたas_null_object

今回は、そのエラーは報告されませんが、奇妙なことに、rendered値はnull!!

なぜ、どのように修正するのかわからないのですか?または、興味のある分野を提供できるようにする他の方法はありますか?

0 投票する
3 に答える
1484 参照

c# - 依存性注入と C# におけるガード句と Null オブジェクト パターン

コンストラクター インジェクションを使用すると、次のように依存関係がコンシューマーに注入されます (少なくとも、正しく理解できれば幸いです)。

IDependency に Null オブジェクト パターンを使用する場合、ガード句は必要ですか? それとも Null オブジェクトを注入するのは間違っていますか?

更新:明確にするために、次のようなクラスとインターフェイスがあると仮定しましょう。

次に、SomeConsumer からガード句を安全に削除して、次のようにすることはできますか?

nullまたは、注入されないかどうか確信が持てないため、ガード句を使用する必要がありますか?

0 投票する
1 に答える
172 参照

ruby-on-rails - RailsのNullオブジェクトの命名規則?

Rails アプリケーションの場合: モデル オブジェクトにマップされる null オブジェクトに名前を付けるための命名規則はありますか?

例:

NullBlog従来型ですか?

Avdi Grimm によるこの記事も、 Sandi Metz によるNothing is Somethingプレゼンテーションも、null オブジェクトの命名規則について言及していません。

0 投票する
1 に答える
150 参照

android - RxJavaでNullObjectパターンを実現する方法

ええ、それは少し野心的に聞こえるかもしれませんが、私が達成したいことは次のとおりです。

クラスがObservableそれを正しく準備する (別の場所で作成して参照を取得する) のに時間がかかるため、別のクラスがそれを要求すると、参照がまだ null である可能性があります (nullpointer が発生します)。私が達成しようとしているのは、NullObject パターンに似ています。安全にサブスクライブできる空のオブザーバブル (null ではなく) を返し、Observable が作成されると、アイテムの放出を適切に開始します。

それを解決する 1 つの方法はPublishSubject、クライアント クラスと ObservableHolder クラスの間のブリッジとして機能するものを作成することです。PublishSubject 参照は常にクライアントに返され、Observable準備ができたらすべてのイベントをサブジェクトに転送します。それは良い解決策ですか?それとももっとうまくできるでしょうか?

@編集

私は自分のソリューションにとどまることにしました。クラスにラップした後、それで十分なソリューションだと思います。以下の回答に賛成しましたが、rx-java実装に直接関係していないため、私の問題とは一致しませんが、プロキシパターンが役立つことを示唆しています。

0 投票する
2 に答える
1272 参照

ruby-on-rails - 設定されている属性に応じて条件付きのRailsインスタンスメソッド

モデルの保存時にオプションであるいくつかの属性を持つモデルがあります。

これらの属性を使用して計算を実行するいくつかのインスタンス メソッドがありますが、最初にそれらが nil でないかどうかを確認したいと思います。no method error nil nil class

私のコードをポイ捨てする以外に、.present?これを行うためのより良い方法はありますか?

編集: これまでの私のコードは次のとおりです

チェックを実行するために立ち寄ると.present?コードの臭いがするように感じます。null オブジェクト パターンを調べましたが、オブジェクトが存在するため、ここでは意味がないように見えますが、属性の一部はnil

0 投票する
2 に答える
86 参照

c++ - 「'A' から 'B&' に変換できません

テンプレート メタプログラミングを使用してエンティティ コンポーネント システムを構築しています。Cannot convert from [base type] to [type user requested]&またはCannot convert NullComponent to [type user requested]&エラーが発生し続けます:

編集

これらのオプションは今のところ機能しているようです。

また

0 投票する
1 に答える
1745 参照

java - Null オブジェクト パターンを実装する方法

これまで、たとえば BST で null チェックを削除するなど、Null オブジェクト パターンを作成する手順は次のとおりであることをどこでも見てきました。

  1. インターフェイス ノードを作成する

  2. インターフェイス Node を実装する 2 つのクラスを作成します。1 つは real_Node になり、もう 1 つは null_Node になります。

  3. これらのクラスを使用すると、ツリーの作成中に BST クラスで null チェックを削除できます。

ここで、これを行う他の方法があるかどうかを知りたいです。たとえば、クラスのみを使用して、インターフェイスなしで Null オブジェクト パターンを実装できますか。つまり、上記の手順 (1.) で Node インターフェイスの代わりに Node クラスを使用できますか?