LeoAndo / java-training

0 stars 0 forks source link

Prototype #92

Open LeoAndo opened 2 years ago

LeoAndo commented 2 years ago

コピーしてインスタンスを作る

new Foo();

クラスからインスタンスを生成するのではなく、インスタンスから別のインスタンスを作り出すパターンをPrototypeパターンという

Javaでは複製操作を「clone」と呼ぶ。 cloneメソッドとClonableインタフェースを使い、複製する

LeoAndo commented 2 years ago

cloneメソッドは浅いコピーを行う

cloneメソッドによって行われるのは、フィールドの内容をそのままコピーするという動作です。 言い換えれば、フィールドの先にあるインスタンスの中身まで考慮しないということです。

LeoAndo commented 2 years ago

cloneは使いにくい

実際のプログラミングでは、cloneの仕組みに頼らず、コピーコンストラクタやコピーファクトリを使う方が良い