問題タブ [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.
apache-flex - フレックス モジュールを使用して開発する場合、ライブラリ プロジェクトに VO を追加する必要がありますか?
私は Flex でモジュール ベースのアプリケーションを開発しており、すべての値オブジェクト (VO) をライブラリ プロジェクトに移動することを考えていました。
現在の構造: シェル アプリケーションと 3 つのモジュールで構成されるプロジェクトがあります。モジュールには、実行時に動的に読み込まれる約 10 個のカスタム コンポーネントが含まれています。私の問題は、コンポーネントA(モジュールA内)がコンポーネントB(モジュールB内)にデータを渡す必要があることです。そこで、コンポーネント A が使用していた VO を共通のフォルダに移動します。次に、VO を渡し、コンポーネント B にそれをピックアップしてもらい、それに対して必要なことをすべて実行させます。
そこで私が考えていたのは、既存のライブラリ プロジェクトを使用して、すべての VO をそれに追加することでした。この方法では、VO をモジュールから共通のフォルダーに移動する必要がないため、モジュール A とモジュール B の両方がアクセスできます。基本的な考え方は、他のモジュールに依存することなく、シェルから独自のウィジェットまたは Air アプリにモジュールを完全に抽象化できるようにしたいということです。
これは悪い習慣だと思う人はいますか?もしそうなら、なぜですか?代替手段はありますか?
ありがとう!
hibernate - Hibernateマッピングの値オブジェクトまたはエンティティオブジェクト?
私は非常に単純なアプリを設計しようとしていますが、Hibernateのエンティティオブジェクトと値オブジェクトの定義(Java Persistence with Hibernateの第4章で定義されている)と少し混乱しています。
私が持っているのは、注文できる顧客とのアプリです(1対多の関係)。これらの各注文には、多くの注文明細があります(1対多)。さて、顧客はアイデンティティ(顧客番号)を持っていると思いますが、注文(注文番号)もそうなので、エンティティオブジェクトになりますか?私の混乱は注文ラインにあります。
注文ラインには、数量、製品番号、価格があります。順序線は、その順序なしでは存在できず、それ自体のIDもありません。したがって、私はそれを値オブジェクトと見なします。しかし、注文とその注文ラインの間には1対多の関係があるため、注文ラインを注文テーブルの一部にすることはできません。1対多の関係は、値オブジェクトの定義とどのように連携しますか?Hibernateの本から:
「値型のオブジェクトにはデータベースIDがありません。エンティティインスタンスに属し、その永続状態は所有するエンティティのテーブル行に埋め込まれています。値型には識別子または識別子プロパティがありません。」
誰かが私の混乱を解消することができれば、私は本当にそれをいただければ幸いです:)
java - java値オブジェクト
私はJavaを初めて使用し、値オブジェクトを作成する必要があります(Javaではマップオブジェクトと呼ばれる場合があります)が、コードが機能していないようです。値オブジェクトは次のとおりです。
そして私はこのような新しい値オブジェクトを割り当てます:
したがって、「User u = new User();」とコメントアウトすると、ブレークポイントに移動しますが、上記のように保持すると、実行が停止します。
ちなみに、私は両方のファイルを同じフォルダーに保持しているので、Eclipseはファイルをインポートしません。これは正しいですか、それともインポートする必要がありますか?
編集:
しばらくして、ファイルを手動でインポートする必要があることに気づき、それを試したと思いましたが、どうやらしませんでした。
domain-driven-design - DDD: エンティティと値オブジェクトの違いは何に使用されますか?
エンティティと値オブジェクトはどちらもドメイン オブジェクトです。DDD でこの 2 つの違いを知っていて、何の役に立つのでしょうか? たとえば、ドメイン オブジェクトをエンティティまたは値オブジェクトのいずれかとして考えると、よりクリーンなドメイン モデルが促進されますか?
c# - DDD: 値オブジェクトにリストを含めることはできますか?
私はドメイン駆動設計に精通しておらず、最近、プロジェクトのドメイン モデルの作成を開始しました。私はまだ ORM を決定していません (ただし、NHibernate を使用する可能性があります)。現在、値オブジェクトがまさにそれであることを確認しようとしています。
たとえば、「好きな」用語をカプセル化する以外にほとんど動作のない VO がいくつかあります。
この特定のクラスには、2 レベル上の「Case」への参照があるため、Referral にアクセスする場合は、次のようにできます。ケース内にあり、ソーシャル内に単一の紹介があります)。入力しながら見ていると、Social エンティティを介してアクセスできるため、Referral に Case は必要ないと思いますよね?
さて、これが VO であるべきものであることは間違いありません。これをデータベースに永続化するために使用する予定の方法は、NHibernate にサロゲート識別子を割り当てさせることです (これについてはまだ明確ではありません)。 、誰かがそれについても詳しく説明してくれれば、それは私を助けてくれるでしょう。なぜなら、サロゲート識別子が私の VO にすでに Id を持っている必要があるのか 、それとも Id なしで動作できるのか分からないからです)および/または保護された Id プロパティこれは、Referral クラスの外部に公開されることはありません (DB に永続化するという唯一の目的のため)。
タイトルの質問に移りましょう: VO にはコレクション (私の場合はリスト) が含まれている必要がありますか? これはデータベース内の 1 対多の関係としか考えられませんが、ID がないため、クラスをエンティティにするのは適切ではないように思われました。以下はコードです:
このクラスには現在 Id がなく、AdultsAtHome クラスには固有の型 (string、int) しかありません。したがって、これがエンティティであるべきなのか、それとも VO のままでいられるのかはわかりません。独自のテーブルとプライベート/保護された Id フィールドを使用して、これに 1:m の関係を使用するように ORM を構成する必要があります。 ORM は DB に永続化できます。
また、クラスごとに正規化されたテーブルを使用する必要がありますか? エンティティまたは値オブジェクトに割り当てられたクラスの複数のインスタンスを持つ可能性がある場合、および/またはそれらのオブジェクトの一部とコレクション 1:m 関係を持つ可能性がある場合にのみ、クラスごとにテーブルを使用する必要があると思います. 固有の型を持つ特定の値オブジェクトに対して単一のテーブルを使用しても問題はありませんが、ネストされた型では、正規化されたテーブルを使用する方が有利だと思います。これについても何か提案はありますか?
複数の質問で非常に冗長になって申し訳ありません:
1) 値オブジェクトにサロゲート識別子 (NHibernate など) が必要ですか?
2) #1 が「はい」の場合、値オブジェクトが概念上値オブジェクトとして「維持」されるように、これを非公開/保護する必要がありますか?
3) 値オブジェクトは他の値オブジェクト (リストなど) を持つことができますか、それともエンティティを構成しますか? (これに対する答えはノーだと思いますが、先に進む前に確認したいと思います。)
4) 集約ルートから数レベル下の値オブジェクトから集約ルートへの参照が必要ですか? (私はそうは思いません。これは、モデルを作成する際の私の見落としである可能性があります。同意する人はいますか?)
5) ORM に単純な値オブジェクトのマッピングを行わせながら、特定のもの (入れ子になった型やコレクションを持つ型など、1:m 関係のために独自のテーブルが必要になるプロパティ) に正規化されたテーブルを使用しても問題ありませんか?私のエンティティに属する同じテーブルに?
再度、感謝します。
repository - 値オブジェクトの関係をモデル化する方法
コンテキスト:
エンティティ Book があります。ブックには、1 つ以上の説明を含めることができます。説明は値オブジェクトです。
問題:
説明は、別の説明よりも具体的である場合があります。たとえば、説明に本の内容と表紙の外観が含まれている場合、表紙の外観のみを説明する説明よりも具体的です。これをモデル化する方法と、リポジトリに保存する方法がわかりません。これらの関係を知ることは、本や本の説明の責任ではありません。他のオブジェクトがこれを処理し、リポジトリに関係を保存するように依頼できます。しかし、BookRepository.addMoreSpecificDescription(Description, MoreSpecificDescription) はリポジトリの保存が難しいようです。
そのようなことはDDDでどのように処理されますか?
design-patterns - 値オブジェクトを使用したメソッドチェーン
値オブジェクトにメソッドチェーンパターンを使用することは許容可能/適切な方法ですか(これの代わりに新しいオブジェクトを返すなど)?このソリューションが実装されているケースはありますか?
欠点は考えられませんが、ご意見をお聞かせください。
php - Flexでの値オブジェクトの使用法を理解するのに役立ちます
Flexの値オブジェクトを理解する上でいくつかの小さな問題があります...PHP/ MySQLからデータを取得してFlexに送信しようとしていますが、いくつかの(明らかに)基本的な問題で立ち往生しています...
Flexの私のオブジェクトは次のようになります。
私の場合、personDetails
は配列であり、理論的には他のオブジェクトである可能性があります...しかし、それを本当に必要object
ですか?VOPerson
私はそのデータをクラス内以外の場所で使用するつもりはありません。これは連想配列であり、別のオブジェクトに簡単に変換できますが、アプリには同様の状況がたくさんあるので、不要な(値)オブジェクトを作成する必要がない場合は避けたいと思います...
とにかく、私の問題に関するヒント/ヒント/リンクは本当にありがたいです!:)
ありがとうございました!
actionscript-3 - AS3 の値オブジェクトとジェネリック クラスの違いは何ですか?
ActionScript3 の Value Object と Class の構造上の違いがわかりません。
VO と呼ぶことにした場合、任意のクラスを VO にすることができますか?
ありがとう。
php - PHPの値オブジェクトと連想配列
(この質問はコンテキストとしてPHPを使用しますが、PHPのみに限定されません。たとえば、ハッシュが組み込まれている言語も関連します)
この例(PHP)を見てみましょう:
対:
方法1はもちろん簡潔ですが、次のようなエラーが発生しやすい場合があります。
もちろん、それ$myFred->naem
が同様にエラーにつながると主張する人もいるかもしれませんが、それは真実です。しかし、正式なクラスを持つことは私にとってより厳格に感じますが、私はそれを本当に正当化することはできません。
それぞれのアプローチを使用することの長所/短所は何であり、人々はいつどのアプローチを使用する必要がありますか?