こんにちは。松本です。 ポリモーフィズムはオブジェクト指向言語の魅力のひとつですが、これがオブジェクトと JSON のマッピングを複雑にするなあと度々感じています。 汎化された型として定義されたプロパティ(フィールド)を持つオブジェクトを JSON からデシリアライズするには、型解決に関する定義やロジックをコードや設定として組み込むことになります。ここに、モデルクラスの設計と、JSON のエンティティ設計の間でトレードオフが発生することがあり、ケースに応じた最適な設計/実装が必要になるわけです。 私が扱うソフトウェアのライフサイクルの特性上、繰り返される追加開発に対し、保守性/拡張性を維持することは大きな関心ごとです。クラス関係の妥当性や理解しやすさ、変更時の影響範囲の抽出しやすさ、クラス数、コード量、実装難易度など、様々なトレードオフスライダーを頭に描きながら、最適だと考える選択を行いま