C#クライアントとJavaサーバーがあります。ワイヤーを行き来するデータオブジェクトがあります。それらをFooData.csと呼びましょう。ここでは、すべてが単なるgetとset(ロジックなし)です。
FooData data = new FooData();
data.Price = 10;
data.Quantity = 20;
アプリケーションで使用したい他の派生フィールドがありますが、ネットワーク上で送信する必要がないため、クラスがあります
FooWrapper.cs。
データオブジェクトをラッパーに挿入します
FooWrapper wrapper = new FooWrapper(Foodata);
wrapper.Price = 10;
wrapper.Quantity = 20;
double total = wrapper.GetTotal();
ラッパーにはデータオブジェクトと同じプロパティがたくさんある(そして委任するだけです)か、ラッパーにもいくつかの計算されたプロパティがあります。ラッパーが持つ唯一の状態はデータオブジェクトです(他のメンバー変数はありません)
このモデルを使用するのか、コンバーターを使用するのかについて議論がありました。コンバーターの方法は、FooWrapperを使用する代わりに、FooBusinessObjectを使用し、「on thewire」オブジェクトを挿入する代わりに、onthewireオブジェクトからビジネスオブジェクトにすべてのデータを渡すconvertメソッドを呼び出すことです。
FooData data = new FooData();
FooBusinessObject busObj = new FooBusinessObject();
busObj.Price = data.Price;
busObj.Quant= data.Quantity;
double total = busObj.GetTotal();
何が優れているかについての考え(ラッパー対ビジネスオブジェクト/コンバーター)