1

オブジェクトをさまざまな方法でコピーするための設計原則/パターンを探しています。たとえば、タイプ ACCOUNT クラスのオブジェクトをコピーするには、次のオプションがあります。

1) 正確に複製

2) クレジット情報を除くすべてを複製

3) クレジット反転用のクローン (値を無効にする) など.

すべてのシナリオで、同じオブジェクトが複製されます。ただし、クライアントの入力に基づいて値が異なります。私はプロトタイプのパターンを考えていました。ただし、クライアントがオブジェクトのコピー方法を制御することはできません。

ありがとう、

プラディープ

4

2 に答える 2

0

クローニングは単純な概念ではありません。従来の浅いコピーまたは深いコピーがありますが、その中間にあるものは何でもかまいません。オブジェクトの一部のフィールドを浅いコピーし、他のフィールドをディープ コピー (「再帰的複製」) することができます。

特定の複製方法はアプリケーションの責任です。そのため、自動化または自動生成することはできません。

複雑なオブジェクト グラフを複製すると、一部のフィールドが親クラスによって更新される可能性さえあります。したがって、1 つのクラスの clone メソッドにすべてをカプセル化することさえできません。

あなたが説明したような特定の複製パターンが見つからないことを残念に思いますが、いくつかの拡張機能 (「複製フラグ」) を備えたプロトタイプ パターンは問題ありません。

于 2012-11-27T09:37:49.137 に答える
0

より一般的なソリューションとして、プロトタイプ パターンまたは場合によっては Factory を使用します。

クローンは、私たちが知っているように、単なるコピーです。最も一般的なソリューションは、値によるコピー、参照によるコピー、およびハイブリッド コピー オン ライトです。

クレジットの詳細を除くすべてのクローンを作成することは、「クレジットのクローン」のように、元のオブジェクトに関連する新しいオブジェクトを作成することです。

これらのいずれかを具象オブジェクトに実装するか、Factory に実装するかは、実際にはタスクのローカル条件の問題です。

于 2012-11-26T12:59:09.713 に答える