問題タブ [value-objects]
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.
nhibernate - エンティティ、値オブジェクト、またはそれは何で、どこにあるべきか?
「ツール」というクラスがあります。ツールには、名前、説明、その他の特定のプロパティがあります。名前などは読み取り専用ですが、説明はユーザーが変更できるため、ツールは特別です。
ツールの数は一定であり、開発時に認識されます。クエリを実行し、説明を更新できる場所をユーザーに示す必要があるため、これは値オブジェクトではありません。つまり、一種のエンティティですが、ユーザーは新しいツールを作成できません。
私はこのようなツールを取る可能性を探しています:
ここで、SomeGreatTool は「Some great tool」という名前のツールであり、説明はユーザーが指定したものと同じである必要があります。
Jimmy Bogard はほぼ完璧なソリューションを持っていますが、NHibernate は SomeGreatTool について何でも知っており、Description は null になります。
ジミーのソリューションを変更する方法、または別の方法で行う方法は? データベースから SomeGreatTool をインスタンス化するには?
repository - 値オブジェクトはどのように保存およびロードされますか?
値オブジェクトのリポジトリがないため。すべての値オブジェクトをロードするにはどうすればよいですか?
ブログアプリケーションをモデル化していて、次のクラスがあるとします。
- 投稿(エンティティ)
- コメント(値オブジェクト)
- タグ(値オブジェクト)
- PostsRespository(リポジトリ)
新しい投稿を保存すると、そのタグが同じテーブルに保存されることを知っています。しかし、どうすればすべての投稿のすべてのタグを読み込むことができますか。PostsRespositoryには、すべてのタグをロードするメソッドが必要ですか? 普段はやってますが、他の人の意見を知りたい
geometry - 3Dポイントの値オブジェクトかどうか?
Python でジオメトリ ライブラリを開発し、3D 空間でのポイント、ライン、プレーン、およびさまざまなジオメトリ操作を記述する必要があります。私の前の質問に関連しています。
設計における主な問題は、これらのエンティティに ID が必要かどうかです。インスピレーションを得るための同様のライブラリ (別の言語で開発された) があるかどうか、選択されたデザインは何か、特に 1 つの選択ともう 1 つの選択の理由を知りたいと思っていました。
php - PHP OOPの概念(値オブジェクト/データアクセスオブジェクト)
私はPHPOOPを学び始めたばかりで、以前は手続き型の方法でPHPを実行していました。私はこの記事を読んでいて、いくつかの簡単な質問があります、
値オブジェクトのコンストラクターは一般的にどのように定義されていますか?すべての「データメンバー」をパラメーターとして取り込むか、デフォルトのコンストラクターに固執し、ミューテイター/アクセサーメソッドを使用してデータメンバーを設定/取得するものとして?
これは実際にPHPOOPを開始するための推奨される方法ですか?正直なところ、この記事で説明されている概念は私にとって少し混乱していました。
乾杯
entity-framework - EntityFramework4.0およびDDDパターン
私はEntityFrameworkをORMとして使用しており、値オブジェクトとエンティティオブジェクトパターン(Evans)を表す2つの基本クラスを持つ単純なPOCOドメインモデルがあります。これらの2つのパターンはすべて、2つのオブジェクトの同等性に関するものであるため、EqualsメソッドとGetHashCodeメソッドをオーバーライドします。これらの2つのクラスは次のとおりです。
いくつかの関連オブジェクト(カスケード削除のマークが付けられた2つの依存オブジェクトを持つ集約ルートオブジェクト)を削除しようとするまで、すべて問題ありませんでした。「1つ以上の外部キープロパティがあるため、関係を変更できませんでした。 null不可です」。私はこれをグーグルで検索し、http://blog.abodit.com/2010/05/the-relationship-could-not-be-changed-because-one-or-more-of-the-foreign-key-properties-isを見つけました-null不可/ GetHashCodeをbase.GetHashCode()に変更すると、エラーが消えました。しかし、今ではすべてのコードが壊れています。POCOオブジェクトのGetHashCodeをオーバーライドできません=>Equalsをオーバーライドできません=>POCOオブジェクトの値オブジェクトとエンティティオブジェクトのパターンを実装できません。だから、私はここでの解決策、回避策などに感謝します。
domain-driven-design - ドメイン駆動設計値オブジェクト、一意の値を確保する方法
アンケートクリエーターを作成しています。質問票はセクションで構成され、セクションはページで構成され、ページは質問で構成されます。アンケートは集約ルートです。
セクション、ページ、および質問には、アンケート内で一意である必要があるショートコードと呼ばれるものを含めることができます(ただし、データベース内で一意ではないため、厳密にはIDではありません)。ショートコードを値オブジェクトにするつもりで、アンケート内で一意である必要があるというビジネスルールを含めたかったのですが、それを確実にする方法がわかりません。私の理解では、値オブジェクトはリポジトリまたはサービスレイヤーにアクセスしてはならないので、それが一意であるかどうかをどのように判断しますか?
助けてくれてありがとう。
ダレン
domain-driven-design - 集計と値オブジェクト: 削除しますか?
現在、システム内のエンティティ、値オブジェクト、および集計を決定しています。次のエンティティが特定されたとします。
顧客、CustomerEmail、電子メール、CustomerAddress、住所、AddressType
ここで、Customers -> Emails は多対多の関係であり、Customers -> Addresses (アドレス タイプを使用) と同様です。これらの関係は、CustomerAddress および CustomerEmail 関係オブジェクトによって表されます。
最初は、これは簡単だと思いました:
エンティティ: Customer、CustomerEmail、CustomerAddress 値オブジェクト: Email、Address、AddressType
Customer は、上記のすべてのエンティティと VO を含む集約の集約ルートです。
私が抱えている問題 (そして、これは、先に進むにつれて集計の概念について学習しているだけかもしれません) 同じ Address および Email 値オブジェクトを使用して、上記の Customer 集計を反映する Supplier エンティティがあるとします。この場合、顧客が削除されても、アドレスと電子メールは削除されるべきではありません。サプライヤーとして、または別の顧客でさえもそれらを参照している可能性があるからです。集約が削除されると、集約境界内のすべてが一度に削除されることを示唆する多くのドキュメントを見てきました。これが集合体の値オブジェクトには適用されないと仮定するのは正しいですか (つまり、それらは不変です...車両集合体に緑色の色オブジェクトがあった場合...車だからといって色を削除することはありません)または、電子メールとアドレスが 2 つのアドレスとして独自のエンティティ (および集合体) である必要があります。
最後に、それらが実際に値オブジェクトである場合、VO が集約ルートを介してのみ作用できる場合、それらを削除する必要がある場合 (アドレスを参照しているサプライヤーまたは顧客が残っていない) をどのように処理しますか?
乾杯、
スティーブ
domain-driven-design - 値オブジェクトとエンティティ
簡単な質問... メールアドレスのようなものにアプローチするとき、当面のアイデアは、これを値オブジェクトとして扱うことです。
ただし、同じ電子メール アドレスを参照している顧客、連絡先、およびサプライヤーなど、多数のエンティティがある場合、顧客の電子メール アドレスを変更するときに、顧客の連絡先が必要になる可能性があります。サプライヤーにも、その電子メールの変更がそれらのエンティティにも反映されるようにします。これは電子メール アドレスに ID を与えているので、エンティティとして表す必要があると考えるのは正しいですか?
乾杯、
スティーブ
xml - 値オブジェクトからのデータの取り込みとアクセス
新しいプロジェクトで、値オブジェクトからのデータの読み込みとアクセスに問題があります。アセット ファイルのタイトルと場所を含む xml ファイルをサービス経由で読み込みます。アセット ファイルの場所にアクセスできる必要があります。タイトルを指定し、それを値オブジェクトから取得します。私は Robotlegs フレームワークを使用しています。xml の例を次に示します。
次に、このデータをディクショナリ ハッシュとして値オブジェクトにプッシュします。
ビューコンポーネントからこれにアクセスすることをテストしました。
それは未定義を返します..何かアイデアはありますか?