ОК, после уточняющих комментариев мое понимание таково:
- У вас уже есть класс адресов и соответствующая таблица базы данных
- Для каждой страны потребуется различный набор адресных строк для каждогоАдрес
- Поведение кода для каждой страны не особенно отличается (т. Е. Адреса ведут себя одинаково, за исключением того, что они имеют разные адресные строки)
В целомЯ бы не стал создавать новые классы, когда различия на самом деле просто чистые данные.Таким образом, наличие двух разных классов Address выглядит как плохая идея , независимо от того, заставляете ли вы их наследовать от одного базового класса.Кроме того, иерархии наследования обычно не очень хорошо сопоставляются с базами данных.
Я думаю, что лучшим решением является сохранение свойств для каждой страны в HashMap или в чем-то подобном, что затем определяет, какие адресные строки применяются для каждой страны.,Для простоты каждый адрес может содержать HashMap<String,String>
, то есть со строками как для ключей (имена адресных строк), так и для значений (адресные данные).
Если вы сделаете это, у вас будет высокая степень гибкости в отношении того, какие свойства вы устанавливаете для каждой страны, и если вы добавите третью страну в какой-то момент, вам может не потребоваться никаких изменений кода - просто новый наборадресных строк.
В базе данных я представляю данные в двух таблицах: Address и AddressLine, с очевидным отношением 1-ко-многим.