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 ドキュメント > 設計ノート > 固定オブジェクト |