У меня возникла какая-то дилемма, и я был бы признателен за ввод.
У меня есть этот класс, назовем его «Автомобиль», где каждый экземпляр имеет свои индивидуальные настройки (через свойства), например, «Цвет»., "HasGearShift" или еще много чего (я делаю это для простого примера).Они должны быть настраиваемыми пользователем, но также должны быть значения по умолчанию.
Поэтому естественным решением было взять все свойства «settings» и разделить их на отдельный класс «Settings», который можно сериализовать / десериализовать.Каждый класс Car может также наследовать класс Settings с классом, который устанавливает значения по умолчанию и может быть сериализован как основа пользовательской настройки.Софар так хорош.
Проблема, которую я чувствую, заключается в том, что мне либо приходится жить с таким синтаксисом по всему коду: someCar.Settings.HasGearShift
, и даже есть что-то вроде этого: someCar.Settings.GearBox.CurrentGear
Но, по крайней мере, нет избыточностивсе красиво инкапсулировано в классе «Настройки».
Другой вариант - сохранить свойства класса Car и просто скопировать их из класса «Настройки» в класс.Тогда я могу просто написать someCar.HasGearShift
снова.Делает ссылки на свойства намного более краткими, но означает, что мне нужно изменить настройки в двух классах, если я что-то добавлю / уберу.
Какой из них вы бы выбрали, или есть третий лучший способ, которого мне не хватает?Я склоняюсь ко второму варианту, иначе в коде просто будет слишком много "аварий":)