Задача моделирования объекта - PullRequest
1 голос
/ 21 июня 2010

У меня есть класс Car, и у каждого класса есть список дополнений (кожа, пресс, складные зеркала и т. Д.)

public Extra
{
public bool Paid {get;set;}
public string Name {get;set;}
public string Code {get;set;}
}

А теперь лучше:

class Car
{
public Extra Leather {get;set;}
public Extra FoldingMirrors {get;set;}
public Extra Abs {get;set;}
}

или лучше:

class Car
{
private List<Extra> _listOfExtras=new List<Extra>

public List<Extra> ListOfExtras
{
...
}
}

И худшая часть:

Мое приложение winforms работает в автономном режиме, и по одному в месяц отправляются данные для меня.

Я должен держать список доступных (каждый пользователь автомобиля выбирает отдельно оплачиваемых предметов) дополнений в этом приложении, поэтому я считаю, что лучший способ - это вариант 1

как хранить этот список дополнений в моих приложениях? Он подключается к веб-сервису только один раз в месяц.

Ответы [ 3 ]

2 голосов
/ 21 июня 2010

Лично (видя это субъективно), я бы использовал интерфейс для Extra (например, IExtra). Я также хотел бы перейти ко второму «варианту» - иметь список / словарь дополнений, содержащихся в классе Car.

При необходимости их можно открыть, как в варианте 1, просто просмотрев значение в списке / словаре.

1 голос
/ 21 июня 2010

Я бы сохранил его в Dictionary<string, Extra>.Вы не хотите, чтобы одни и те же дополнения появлялись более одного раза ... Или хотя бы платили за них более одного раза: -)

Кроме того, Extra должен быть интерфейсом (или, по крайней мере, абстрактным классом)) ..

Что касается хранилища, вы можете сериализовать класс Car в XML.

1 голос
/ 21 июня 2010

Список или словарь (для более легкого доступа) дополнений будет более гибким.

Это будет означать, что при добавлении и / или удалении дополнений из автомобиля вам не придется изменять Car класс, который вам пришлось бы делать, если бы каждый из них был добавлен явно.

Существуют различные способы локального сохранения списка.Вы можете сериализовать в файл - либо в виде простого текста, либо в формате XML, что было бы лучше, поскольку у вас есть классы, выполняющие сериализацию для вас, или вы можете хранить его в локальной базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...