問題タブ [domain-object]
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.
repository-pattern - 複数の DTO からのドメイン オブジェクトの構築
正規の Customer ドメイン オブジェクトがあるとします。顧客が表示される 3 つの異なる画面があります: 外部管理者、内部管理者、およびアカウントの更新です。
さらに、各画面には Customer オブジェクトに含まれるすべてのデータのサブセットのみが表示されるとします。
問題は、UI が各画面から (たとえば DTO を介して) データを返すときに、完全な Customer ドメイン オブジェクトのサブセットのみが含まれていることです。したがって、Customer オブジェクトを再作成するためにその DTO を Customer Factory に送信すると、Customer の一部しか得られません。
次に、この顧客を顧客リポジトリに送信して保存すると、そこにないため、大量のデータが消去されます。悲劇が起こります。
問題は、この問題にどのように対処するかです。
私のアイデアのいくつか:
顧客のどの部分を更新するかを示す引数をリポジトリに含め、他の部分を無視する
顧客をロードするときは、静的メモリ、セッション、またはどこにでも保持し、UI から DTO の 1 つを受け取ったら、DTO に関連する部分のみを更新します。
IMO、これらはどちらもクラッジです。他に良いアイデアはありますか?
@chadmyers: ここに問題があります。
エンティティにはプロパティ A、B、C、および D があります。
DTO #1 には、B と C のプロパティが含まれています。
DTO #2 には、C および D のプロパティが含まれています。
UI は DTO #1 を要求します。エンティティをリポジトリから読み込み、DTO #1 に変換し、B と C のみを入力して、UI に渡します。
ここで、UI は B を更新し、DTO を送り返します。エンティティを再作成すると、DTO に含まれているのは B と C だけなので、B と C だけが入力されます。
次に、B と C のみが入力されたエンティティを保存し、A と D を null/空白にします。リポジトリは、A と D を空白として永続的に更新する必要があるかどうか、またはそれらを無視する必要があるかどうかを知る方法がありません。
design-patterns - ドメイン駆動設計のファクトリ パターンでインターフェイスをどのように使用しますか?
デフォルトでドメイン オブジェクト ファクトリにインターフェイスを使用することは理にかなっていますか? それとも、必要な場合にのみインターフェイスをファクトリ クラス用に予約する必要がありますか?
domain-driven-design - 「ドメイン オブジェクト」は、ビジネス ルールを表すクラスですか?
「ドメイン オブジェクト」という用語に出くわし、Google でいくつかの定義を見つけましたが、私の理解が正しいことを確認したいだけです。
これは単純にビジネス ルールを表す任意のクラスですか?「ドメイン」という言葉は通常、所得税の計算方法など、いくつかのローカルな問題セットに固有のルールを意味するためです。
では、所得税を計算するためのドメイン オブジェクトは、すべての税規則を表すために作成するクラスになるのでしょうか?
java - Java でドメイン オブジェクトを Web サービス プロキシ オブジェクトにマッピングする
さまざまな Java Web サービス スタックによって生成された Web サービス プロキシ オブジェクトにドメイン オブジェクトをマッピングする方法を見つけようとしています。Web サービス (.NET) と Java コードの両方が、特定の仕様の実装を使用します。この仕様は、さまざまなプラットフォームで実装する必要があるドメイン クラスの非常に詳細な説明を提供することを目的としています。ただし、.NET 実装が Web サービスを介して公開されると、Java Web サービス スタックは、仕様に基づいて、ドメイン クラスの Java 実装にマップする必要がある WSDL ベースのドメイン クラスを生成することになります。たとえば、2 つの ENTRY クラスがあり、1 つは Java 実装からのもので、もう 1 つは Web サービス呼び出しのパラメーターであり、Web サービスのコンシューマーは、Java ドメイン クラス (ENTRY )。
推奨されるプラクティスはありますか?
よろしくお願いいたします。よいお年をお迎えください。
セレフ・アリカン
grails - タイムスタンプとして機能するように Grails ドメイン オブジェクトの Date フィールドを初期化するにはどうすればよいですか?
2 つの日付を持つドメイン クラスがあり、作成タイムスタンプのように、オブジェクトのレコードが作成されたときに、そのうちの 1 つに現在の時刻を入力したい...
Date
それらの1つでオブジェクトを新規作成し、それを埋める必要があるときまで、もう1つのオブジェクトをnull可能にするだけで十分ですか?このように...
私は実験を行っていますが、これが正しい方法なのか、それとも Grailsy や GORMy でもっと何かすべきことがあるのか、たとえばinit
関数で、またはドメイン オブジェクト定義を微調整して、デフォルトで、 id
and と同様ですversion
。
ありがとう
grails - これは Grails トランジェントの有効な使用法ですか?
実行時にのみ存在するいくつかのものを保存したいドメインオブジェクトがあります。ドキュメントを見て、キーワードを見つけましたtransients
。これは一見、私が探していたものでした。これが私のドメインオブジェクトの外観です...
whereSeeker
は、ドメイン オブジェクトではなく、一部のプロパティのプレースホルダーである groovy クラスです。
pal
これまでのところすべて問題なく、私の Contact テーブルには期待どおりのフィールドがありません。私のContactController
I では、一連の連絡先をクエリしc
、次に彼らのSeeker
仲間 (どのように保留されたかの詳細) を検索し、pal
フィールドを新しいオブジェクトに設定します。
返された JSON に pal オブジェクトがないことを除いて、これはすべて正常に機能しているようです。
これはトランジェントの有効な使用法ですか? ドキュメントには、関数ベースのゲッターとセッターに便利であると記載されていますが、私の場合は実際のオブジェクトが必要です。オブジェクトに getPal() および setPal() メソッドを作成する必要がありますか?
ありがとう
dependency-injection - DIの使用パターン/ユースケースまたはいつ使用を開始するか
アプリケーションでDIを使用する必要があるユースケースがわかりません。PlaceService
などのようなサービスの注入CalculationService
が非常に適していることは知っていますが、?のようなDIを使用してドメインオブジェクトを作成する必要もありますUser
か?User
に姓名を必要とするコンストラクターが1つしかない場合はどうなりますか。これはDIで解決できますか?
セット/リストインターフェイスのインスタンスを作成するためにDIを使用する必要がありますか、それともこれは純粋にやり過ぎですか?
私は主にguiceを使用します。
php - Unit of Work パターン、ゲッター、セッター、コントラクト (PHP)
タイトルがこの質問を説明する最良の方法であるかどうかはわかりません。
この本 ( http://apress.com/book/view/9781590599099 ) は、Unit of Work パターンの実装を示しています。こんな感じで少し進みます。
(静的呼び出しと依存関係の問題をしばらく無視します)
著者は、この実装ではコーダーが関連する UoW マーキング メソッドを挿入する必要があり、パターンを選択的に尊重するとエラーが発生する可能性があることに注意しています。ここで、具象アクセサーの長所と短所を踏まえて、次のように UoW 呼び出しを自動化できます。
それで、私の質問は、ドメイン オブジェクトにプロパティを設定するときに、適切な UoW メソッドが呼び出されたことをどのように保証しますか?
model-view-controller - MVC アプリケーションのコントローラーは、ドメイン オブジェクトごとに 1 つにするか、関連するアクションのグループごとに 1 つにする必要がありますか?
私は MVC アプリを持っています。作成するときは、ドメイン モデル Person 用の 1 つのコントローラーから始めます。AddPerson、DeletePerson、EditPerson などのアクションがあります。次に、AddPersonBoss や RemovePersonBoss などの追加を開始します。すぐに、1 つのコントローラーで 20 個のアクションを使用できるようになります。私のファイルには数百行のコードが含まれており、理解するのが難しいため、MVC の利点はあまり明白ではありません。
私が見るすべての例は、Person などのドメイン オブジェクトごとに 1 つのコントローラーを示しています。AddPerson、DeletePerson、EditPerson 用の PersonManagement コントローラーと、AddPersonBoss、RemovePersonBoss 用の BossManagement コントローラーが必要な気がします。
これは理にかなっていますか?複数のコントローラーに分割したくないのはなぜですか? 1 つのコントローラーでアクションが多すぎると難しくなりますが、私が目にするすべての例はこれを行っています。