blog

デザイン・パターン - プロトタイプ・パターン

オブジェクトを作成するコストが大きく、同じクラスの異なるオブジェクト間の差が小さい場合、作成時間を節約するために、既存のオブジェクトのコピーを使用して新しいオブジェクトを作成することができます。このよ...

Mar 27, 2020 · 1 min. read
Share this

プロトタイプ・パターンの定義

オブジェクトを作成するコストが比較的大きく、同じクラスの異なるオブジェクト間の差が小さい場合、作成時間を節約するために、既存のオブジェクトのコピーを使用して新しいオブジェクトを作成することができます。このように、プロトタイプに基づいてオブジェクトを作成する方法を、プロトタイプ・デザイン・パターン、略してプロトタイプ・パターンと呼びます。

プロトタイプ・パターンの実装:浅いコピーと深いコピー

シャローコピーとディープコピーの違いは、シャローコピーがオブジェクトではなくオブジェクトのインデックスだけをコピーするのに対し、ディープコピーはオブジェクトのインデックスだけでなくデータ自体もコピーするという点です。

Javaでは、Objectクラスのclone()メソッドは、シャロー・コピーと呼ばれる、オブジェクトのベース・データ型と参照オブジェクトのメモリ・アドレスのみをコピーするもので、参照オブジェクト自体を再帰的にコピーするものではありません。

ディープコピー手法の実装

  • 最初の方法:オブジェクトの再帰的コピー
  • つ目の方法:まずオブジェクトをシリアライズし、それを新しいオブジェクトにデシリアライズします。
Read next

ピークを見つける

トピックでは、ピーク要素は要素の隣接要素よりも大きく、nums[-1] = nums[n] = -∞と言ったので、nums[0]がnums[1]より大きく、さらにnums[-1]が負の無限大であれば、nums[0]はピーク要素ではないと探しています。 もし nums[0] が nums[1] よりも大きくないなら、私は...

Mar 26, 2020 · 2 min read