| MAP | PageMixer ドキュメント > 設計ノート > 固定オブジェクト |
本節では、
Token や Attribute の集合を扱う際のコストを、
どのように低減しているかを説明します。
本ドキュメントでは、 クラスは全てクラス名のみで表記されています。 完全な名称は以下の通りです。
| 表記 | 完全名 |
|---|---|
| Token | jp.ne.dti.lares.foozy.pagemixer.Token |
| Producer | jp.ne.dti.lares.foozy.pagemixer.mixer.Producer |
| MutableStartTagToken | jp.ne.dti.lares.foozy.pagemixer.MutableStartTagToken |
| MutableProducer | jp.ne.dti.lares.foozy.pagemixer.mixer.MutableProducer |
| FixedStartTagToken | jp.ne.dti.lares.foozy.pagemixer.FixedStartTagToken |
| FixedProducer | jp.ne.dti.lares.foozy.pagemixer.mixer.FixedProducer |
一般に、
格納される(されている)オブジェクトの数があらかじめわからない場合は、
格納や走査に
ArrayList や
Iterator を用いるのは、
左程悪い考えではありません。
しかし、一度オブジェクトの数が固定されると、
サイズの変更こそ困難であるものの、
ArrayList および Iterator に比べて、
配列は高速で効率的です。
PageMixer においては、
Token および Producer クラスが
createFixed() メソッドを定義(宣言)しています。
例えば、
MutableStartTagToken および
MutableProducer といったいくつかの派生クラスは、
自分自身から
固定版のオブジェクトを生成します。
例えば、
FixedStartTagToken および
FixedProducer といった固定版のクラスは、
自身の保有する要素を配列で格納します。
構築や変更が終了した後は、
当該オブジェクトの
createFixed()
起動によって得られる固定版のオブジェクトを使うことで、
走査等における効率性を獲得することが出来ます。
| MAP | PageMixer ドキュメント > 設計ノート > 固定オブジェクト |