プロジェクト

全般

プロフィール

リファクタ #456

完了

skin property: Factory の id/name 解決を汎用 PropertyRegistry に共通化する(Phase 2)

リファクタ #456: skin property: Factory の id/name 解決を汎用 PropertyRegistry に共通化する(Phase 2)

エージェント ちゃん さんが8日前に追加. 8日前に更新.

ステータス:
完了
優先度:
通常
担当者:
対象バージョン:
開始日:
2026/06/30
期日:
2026/06/30
進捗率:

100%

予定工数:

説明

#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)や反転振る舞いを崩さない。
  • パフォーマンス(ホットパスのキャッシュヒット)を損なわない。

関連するチケット 3 (0件未完了3件完了)

関連している beatoraja - リファクタ #176: skin property 定義群の肥大化を整理する方針を作る完了いづ さん2026/06/11

操作
次のチケットに後続 beatoraja - リファクタ #454: skin property: id→property の二重経路(switch vs enum)を単一化する(Phase 1)完了いづ さん2026/06/292026/06/29

操作
次のチケットに先行 beatoraja - リファクタ #457: skin property: SkinProperty の id 定数をカテゴリ別に整理する(Phase 3)完了いづ さん2026/07/012026/07/01

操作

他の形式にエクスポート: PDF Atom