JSON オブジェクトとして扱うことができるプロパティ マップのキーと値を検証する Java プログラムを作成しています。現在、深くネストされた if-else を使用して検証していますが、非常にエラーが発生しやすくなっています。これがどの設計パターンでも簡単に解決できるかどうかはわかりません。
例として、プレーヤー プロパティ マップを取り上げます。
'player' = {'name': 'player1',
'age': 18,
'race': 'human',
'skills': 'pick pocket',
'misc': { 'hoppy': 'sleep', 'exp': 238459 }
};
いくつか検証したい
一部のキーと値のペアは必須
name
です。like はplayer
プロパティ マップで必須ですが、必須でmisc
はありません。age
値が整数である必要があるように、一部の値は特定の型である必要があります。一部の値は、 , のように列挙型ですが
race
、human
他elf
にはdrawf
何もありません。一部のキーは他のキーに依存します。キーが指定されている場合
A
は、B
キーも指定する必要があります。country
に依存する場合'race': 'human'
のように、{'race': 'human', 'country': 'midearth'}
有効です。{'race': 'human', 'enemy': 'ghost'}
、{'race': 'human'}
ありません。値はマップでもかまいません。そのマップの値は同じ型である必要はありません。
このプロパティ マップは、将来拡張される予定です。拡張性を高めるにはどのような設計が必要ですか?