Я пытаюсь найти лучший способ создать эту модель. Я в значительной степени сделал это в одну сторону, но я рассматриваю возможность сделать это по-другому. Это учебный опыт, поэтому потраченное впустую время не имеет значения.Объектная модель, правильный или наиболее интуитивный способ
namespace FirstWay
{
public class CrateOfBags
{
public string crateId { get; set; }
public string originCountry { get; set; }
public List<BagOfApples> bagList { get; set; }
}
public class BagOfApples
{
public double weight { get; set; }
public string bagId { get; set; }
public List<apple> appleList { get; set; }
}
public class apple
{
public string appleId { get; set; }
public string color { get; set; }
public Boolean rotten { get; set; }
}
}
// Или Это
namespace SecondWay
{
public class CrateOfBags
{
public string crateId { get; set; }
public string originCountry { get; set; }
}
public class BagOfApples : CrateOfBags
{
public string bagId { get; set; }
public double weight { get; set; }
}
public class apple : BagOfApples
{
public string appleId {get;set;}
public string color { get; set; }
}
}
Возможные вопросы
Яблоко Вопросы: Сколько Гнилые яблоки Поставленный? Из каких сумм и/или из каких ящиков появились гнилые яблоки? Первый способ: может проходить через каждый ящик, затем сумку, затем яблоко и счет. Второй способ: может зацикливаться только через яблоки и добавить родительские свойства в HashSet (один способ не использовать дубликаты)
Вопросы с ящиком. Найдите количество ящиков из каждой страны? Первый способ: Прокрутите только ящики и сохраните список подсчета, массив, что угодно. Второй способ: нужно было бы прорезать все яблоки и заботиться только о ящиках.
Одна проблема, с которой я столкнулся, - это очень мало о яблоке, как о его собственном сущности. Я знаю только, из какого ящика это от начала пучка foreach от ящика
Но если я хочу задать вопрос типа «сколько зеленых яблок находится в определенной партии (по id)?» У меня также есть проблемы в зависимости от пути.
Мне кажется неудобным сказать, что яблоко - это ребенок мешка, как собака - ребенок животного. Однако мне нравится идея свободно перемещать манипулирующие яблоки, такие как переключатели, в которые они попадают, просто путем изменения материнской базы. Я не ищу решения конкретных вопросов так, как если бы один из них был лучше (более гибкий, эффективный, интуитивно понятный), то другой, или если мне не хватает чего-то полностью, например, другого метода. Большое спасибо.
P.S. Это не настоящая модель, а довольно приличное представление.
Хорошо спасибо. Первый способ выглядит нормально, или есть другой лучший способ? Я не доволен этим маршрутом, потому что само яблоко должно знать что-то о его происхождении (например, стране или партии). Например, если бы я захотел поместить яблоки в большой контейнер для сушки, я должен был бы измерить «скорость сушки» », а затем еще найти страну происхождения. – TheBigC
Вы решили бы это, дав яблоку ссылку на BagOfApples. Ваши 3 класса - это дерево с тремя уровнями, и вы хотите, чтобы родители связывались с детьми, используя списки, и дети, связанные с родителем, используя ссылки на объекты. Это делает дерево навигационным в любом направлении. Тем не менее, вы должны быть осторожны, чтобы синхронизировать ссылки. – usr