- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- :/X/PageFactory へ行く。
- 1 (2007-12-30 (日) 02:57:46)
- 2 (2007-12-30 (日) 10:51:51)
- 3 (2008-02-11 (月) 15:28:50)
- 4 (2009-11-07 (土) 01:15:51)
- 5 (2009-12-06 (日) 03:52:05)
- 6 (2009-12-06 (日) 20:31:13)
- 7 (2009-12-06 (日) 21:14:30)
- 8 (2009-12-06 (日) 21:51:28)
- 9 (2009-12-07 (月) 02:56:53)
- 10 (2009-12-07 (月) 03:11:49)
- 11 (2009-12-08 (火) 23:13:15)
- 12 (2009-12-11 (金) 03:03:51)
- 13 (2009-12-13 (日) 02:19:27)
- 14 (2009-12-14 (月) 22:30:04)
- 15 (2009-12-17 (木) 21:46:51)
- 16 (2009-12-18 (金) 22:33:12)
- 17 (2009-12-19 (土) 08:50:49)
- 18 (2009-12-19 (土) 09:10:41)
- 19 (2009-12-19 (土) 10:29:55)
- 20 (2009-12-20 (日) 02:48:00)
- 21 (2010-01-02 (土) 03:10:13)
- 22 (2010-01-24 (日) 21:06:18)
- 23 (2010-02-23 (火) 08:08:21)
- 24 (2010-02-23 (火) 16:32:47)
- 25 (2010-02-23 (火) 17:11:23)
- 26 (2010-02-23 (火) 17:57:28)
- 27 (2010-02-23 (火) 22:42:49)
- 28 (2010-02-24 (水) 00:47:07)
- 29 (2010-02-26 (金) 20:17:56)
- 30 (2010-02-27 (土) 14:11:36)
- 31 (2011-12-14 (水) 01:29:17)
- 32 (2013-02-10 (日) 02:42:03)
- 33 (2013-03-20 (水) 22:33:00)
- 34 (2013-03-29 (金) 06:22:41)
目次 †
関連 †
検索:FlyweightFactory
FlyweightFactory周辺のタグ †
ArrayFlyweightFactoryとは †
CGI/FlyweightFactory[?]
シングルトン。
DBMSの役目を持つ。
インデックス †
インデックス更新時 †
インデックス更新時、オブジェクトから属性値を得て、すべてのインデックスを更新。
キー(属性値)→{オブジェクトID}
オブジェクトIDの1つを削除したり、追加したり、
インデックスの更新=各インデックスから削除・追加すること
インデックス †
インデックスに含めるもの、インデックスのキーにするものはインデックス作成側が決める。固定。
キー毎に複数作成。
オブジェクトID→永続化されたオブジェクト名(ファイル名)も含む。
インデックス更新時はインデックス自身の更新日時も更新。
キーは
インデックス作成に必要なものは †
- オブジェクト1つ以上
- インデックスに含める情報は何か?
これは固定。インデックス側が決める。 - オブジェクトID→ファイル名
オブジェクトIDをファイル名に変換するルールはあるが、ルールだけではオブジェクトID→ファイル名はできないので、データとしても残す。
(ファイル名が重複して末尾に連番を付けたときなどに必要)
インデックスは1つのキーで複数のオブジェクトが得られるからこそ効率がいい †
インデックスの更新日時 †
オブジェクトID→更新日時(1対1)
ファイル名→ファイルの更新日時(ファイル拡張子.idxmtime)でいい。
比較相手もファイルの更新日時なので。
DB †
Data::Dumperで。
データベースの使われ方 †
- クラス名 → オブジェクトのリスト または 空リスト (下位クラスのオブジェクト含む)
- (キー名(属性名),値)の集合 → オブジェクトのリスト または 空リスト (キー名には「オブジェクトID」を含む)
- オブジェクトのリスト → 戻り値なし(インデックス更新)
- 全オブジェクトのインデックス更新(未更新分のみ)
- 全オブジェクトのインデックス更新(本当にすべてのオブジェクト分)
プロトタイプ †
package FlyweightFactory;
use Toolkit;
# クラス名 → オブジェクトのリスト または 空リスト (下位クラスのオブジェクト含む) # FetchObject(ClassName) -> @Obj
# (キー名(属性名),値)の集合 → オブジェクトのリスト または 空リスト (キー名には「オブジェクトID」を含む) # FetchObject({key, value}) -> @Obj # FetchObject('key=value,key=value') -> @Obj
# オブジェクトのリスト → 戻り値なし(インデックス更新) # UpdateIndex(@Obj) # UpdateIndexForce(@Obj)
# 全オブジェクトのインデックス更新(未更新分のみ) # UpdateIndex()
# 全オブジェクトのインデックス更新(本当にすべてのオブジェクト分) # UpdateIndexForce()
sub dump
{
my($arg) = @_; use Data::Dumper; $ret = Dumper($arg);
}