質問

DTOはデータ転送オブジェクトであり、BOはビジネスオブジェクトであることを知っています。しかし、それは実際にはどういう意味ですか?いつ片側よりも選択する必要がありますか?私が理解していることは、DTOがデータの転送に使用されているだけで、ビジネスロジックがありません。これは、DTOにメソッドのみのプロパティ(ゲッターとセッター)がないことを意味しますか?しかし、それはまだBOの特性を持っています。誰かが説明してもらえますか?ありがとう。

役に立ちましたか?

解決

DTOは、レイヤー/層間でデータを転送するために使用されます。そのような目的のために、それはメトーを必要としません、そして時にはそれは方法を持たないべきでさえありません - たとえば、DTOがWebサービスで公開されている場合。

ビジネスオブジェクトは、このオブジェクトの操作(データを変更)を実行するデータとメソッドを含む巧妙なオブジェクトです。 BOを上層層にさらすと、オブジェクトのパブリックメソッドを呼び出すことができます。時にはこれを望まない場合があり、そのため、データのみを提供するがメソッドを提供するDTOを作成します。

DTOは、すべてのBOデータを輸送する必要はありません。厳格なDTOアプローチに従うと、ビジネスレイヤーに露出した各操作に対して特定のDTOを作成します。たとえば、オブジェクトがcreatedby、modifiedby、createddateなどのような監査データを持っている場合、そしてあなたの入力DTO(更新されたオブジェクトを使用)を作成している場合、上層層はそれらを変更できないため、これらのプロパティを持つ必要はありません - ビジネスロジックのみができます。

他のヒント

一般に、DTOは到着ティアの前にその瞬間に相対的な静的データを持っていますが、BOは状態とフローフラグの値を動的に保つことができます。また、BOは、いくつかのビジネスロジックの検証または論理的に再編成または判断を下すために自己抑制される可能性があります。しかし、DTOの変更は、ティアの渡されたデータの変更に依存します...しかし、BOの変更はより広範な範囲を持っています。たとえば、ビジネスフロー状態でより動的に更新すること、フラグの変更に依存します。リアルタイムで変更されたこれらは、たとえば200ドルからの残高がゼロになったり、2000ドルから5000ドルの残高など、BOから反映されるように捕獲されて行動すると考えられています。 DTOとBOの大きな違い。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top