一意マッピングの履歴

<?php
class Page{
}
class Site{
    private $pages = array();
    function getPage($i){
        return $this->pages[$i];
    }
    function addPage($i, $page){
        return $this->pages[$i] = $page;
    }
}
?>


いわゆる連想配列またはHashMap。GoFのFlyweight パターンっぽい。

使う理由は

  • 1つのデータレコードに対して複数のオブジェクトがあると、どれが変更したのか混乱する
    • 不変オブジェクトには不要かもしれない
  • データベース読み込みのキャッシュ