問題タブ [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 に答える
45 参照

java - テンプレート NullObject: 罪ですか?

この小さな Template-NullObject を Java でコーディングしましたが、これらのいずれかを使用することが罪と見なされるかどうかを尋ねたかったのです。NullObject を作成するときは、通常、特定のタイプのオブジェクト用に特別に設計されたものを作成しますが、これはそうではありません...

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

ruby-on-rails - Rails text_field / text_ara 空の文字列 vs nil

問題があるかどうかさえわかりませんが、 text_fields と text_areas が のempty string代わりにデータベースに保存されるのが好きではありませんnil

null オブジェクト パターンで遊んでいますが、プロファイルを作成しても場所フィールドに入力<%= @user.profile.location.upcase %>せずに呼び出すと、場所が空であっても文字列であるため、爆発しないことに気付きました。

これは、このようにするためのレールの慣例ですか?もしそうなら、なぜですか?number_of_petsプロファイルに属性があり、次のようなものを呼び出そうとするので、少し奇妙です

それから私は呼び出すことができないので、それは爆発nil.odd?です。

通常どおりのフォームなので、入力されていない場合は空の文字列として保存されます

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

java - Null オブジェクト パターンはインターフェイス分離の原則を破りますか?

インターフェイス分離の原則では、次のように述べられています。

クライアントは、使用しない方法に依存することを余儀なくされるべきではありません。

Null オブジェクト パターンでは、インターフェイスを実装する Null クラスはそれに対して何もしません。これは意図的なものです。

ただし、使用しないメソッドによって異なります。それとも、実装されたメソッドで何もしないことによって実際には単に依存しているだけなので、原則を破っていませんか?

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

oop - NullObject パターン: フィールドを処理するには?

public フィールドをBook含むクラスがあるとします。year_publishedNullObject デザイン パターンを実装する場合は、とNullBook同じように動作するBookが何もしないクラスを定義する必要があります。

NullBook質問は、フィールドが割り当てられているときの動作はどうあるべきですか?

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

java - Null オブジェクト パターンを使用した DAO

読んだ後:
効果的な Java (項目 43 を参照) - Joshua Bloch
クリーン コード (Don't Return Null) - Uncle Bob
回避 != null ステートメント
Null オブジェクト パターン

コレクション以外のオブジェクトには存在しないエンティティを検索したときに、DAO が何を返すべきかという質問に対する答えを探していました。Collection オブジェクトは、空の配列または emptyList メソッドを使用することで本当に問題ありません。しかし、非コレクションでは難しいかもしれません。別の解決策は、null を返さず、代わりに Null オブジェクト パターンを使用することです。しかし、私は Null オブジェクト パターンと DAO を統合する考えがありません。特にモデル (dto) オブジェクトの戻り値の場合に、Null オブジェクト パターンと DAO パターンとの優れた統合を見ることに本当に興奮しています。

最良の設計パターン、シナリオ、および提案を歓迎します。