操作
リファクタ #456
完了skin property: Factory の id/name 解決を汎用 PropertyRegistry に共通化する(Phase 2)
リファクタ #456:
skin property: Factory の id/name 解決を汎用 PropertyRegistry に共通化する(Phase 2)
説明
#176 の整理方針に基づく Phase 2。Phase 1(二重経路の単一化)後に着手する。
背景¶
id→property / name→property の解決が Factory ごとに別実装されており、ロジックが重複している:
-
FloatPropertyFactory/StringPropertyFactory:enum 走査の薄い lookup。 -
IntegerPropertyFactory/BooleanPropertyFactory:enum 走査 + キャッシュ配列 + 反転(-id)処理 をそれぞれ再実装。
name/id の探索戦略(線形走査 / StringType.get マップ / キャッシュ配列)がバラつき、name/id ドリフトのリスクもある。
対応内容¶
- id ・ name 探索、キャッシュ、反転(Boolean の -id)といった反復ボイラープレートを、型ごとにパラメータ化した汎用
PropertyRegistry<T>(仮名)へ抽出し、各 Factory から利用する。 - 算術範囲ハンドラ(LR2 連番 id 規約)はそのまま保持し、registry との合わせ方を整理する。
確認観点¶
- Phase 0 のテスト(registry / ゴールデン / Mapper)を green に保つ。
- キャッシュの同一性保証(
assertSame)や反転振る舞いを崩さない。 - パフォーマンス(ホットパスのキャッシュヒット)を損なわない。
操作