2017-01-13 2 views
0

プロトタイプパターンのドキュメントを読んでいます...プロトタイプメソッドでは、同じオブジェクトではなく新しいオブジェクトを返すので、どのようにクローニングを行うことができますか?

プロトタイプが複写に使用されていること、またプロトタイプがクローン作成に使用されていることが記載されているところがウェブサイト(stackoverflowで質問される質問を含む) ...

それについての事実は何ですか?

クローン化する必要がある場合は、新しいオブジェクトではない新しいオブジェクト(プロトタイプパターンで使用)を返さなければならない場合は、新しい複製文が返された場合は.... これを返した場合(現在のオブジェクト)文は罰金になります...このオブジェクトに関する

もう一つは

私は、彼らがこのオブジェクト(現在または同じオブジェクトを返しているUMLでそれはcloneメソッドに記載されている、多くの例もそのUMLダイアグラムを見てきました)しかし、例では、彼らは全く新しいオブジェクトになる新しいオブジェクトを与えました。

リンクをチェックし、構造図と例のリンクはまた、彼らは

プロトタイプについての構造図のリンク与えた説明を参照参照してください。 https://sourcemaking.com/design_patterns/prototype 例リンク: https://sourcemaking.com/design_patterns/prototype/cpp/1

は、オブジェクトの重複についての私の疑問を明確化私の理解によれば、プロトタイプパターンに与えられた同じ例では、複製(複製とクローン)の両方が起こることはありません。

一般的に、私たちは物事をキャッシュするためにクローンを使用します(既存のものを追加し、既存のものを使用するだけです)が、プロトタイプでは新しいオブジェクトを完全に返すので、オブジェクトをクローンメソッドでキャッシュするために使用されます。

+0

クローニングと複製は、同じことについて2つの単語にすぎません。プロトタイプ/元のオブジェクトがコピー/複製/複製/複製され、その新しいオブジェクトが返されます。私は好奇心が強いです:あなたの考えでは、あなたが複製/複製を返さなかった場合、呼び出し元はどのようにそれを使用できるでしょうか?ポイントは何ですか? – Andreas

+0

ここでポイントはキャッシュに使用されているかどうかです。このパターンは、はい場合はどのようにキャッシングを行うだろうか??? @Andreas –

+0

あなたはプロトタイプオブジェクトの「キャッシュ」を所有する「レジストリ」について話していますか?これは、クローン作成のプロトタイプをどのように入手するかについてのことであり、クローニング操作そのものとは関係ありません。プロトタイプオブジェクトをクローンすると、クローンオブジェクトが返されます。プロトタイプがどこから来たかにかかわらず(あなたまたはレジストリ)は本当です。 – Andreas

答えて

0

プロトタイプは複製に使用され、実際の生活exampleはSheep Dollyです。

関連する問題