Множество списков массивов в классы

#design-patterns

#шаблоны проектирования

Вопрос:

Я в некотором роде новичок в программировании и хочу дать простой совет, как действовать дальше. Я просто объясню свою ситуацию.

У меня есть веб-страница (Default.aspx), 2 класса (Class1, Class2) и 15 списков массивов.

Шаг 1) В Default.aspx, когда пользователь нажимает кнопку, я создаю новый экземпляр Class1:

 Class1 objClass1 = new Class1();
  

Шаг 2) В Class1 у меня есть 15 списков массивов, в которые я добавляю данные. Я не знаю количество элементов, и я использую объект ArrayList, а не простые массивы. Я заполняю все 15 списков массивов данными из Class1. Все списки массивов содержат от 10 до 150 элементов.

Шаг 3) В Class2 мне нужны все 15 списков массивов, чтобы выполнить для них некоторые бизнес-правила в обычном Class2BusinessRules. Итак, я кодирую:

 Class2 objClass2 = new Class1(); 
objClass2.Class2BusinessRules(ArrayList1, ArrayList2, etc..)
  

Итак, я передаю 15 списков массивов в качестве параметров Class2. Каково лучшее решение в этой ситуации? Class1 и Class2 должны существовать отдельно, поскольку они являются абстрактными объектами, они служат разным целям. Я не хочу объединять их в 1 класс. Я не хочу делать эти 15 списков массивов статическими или какими-либо глобальными переменными, потому что их будут использовать одновременные пользователи на веб-сайте.

Возможные решения: 1) Поместить все списки массивов в отдельный класс 2) Поместить все списки массивов в объект Dictionay, подобный Dictionary

Каковы плюсы / минусы для этих двух решений? Можете ли вы поделиться другими подходящими решениями для моего случая? Можете ли вы рассказать мне о каком-либо шаблоне дизайна для классов, близком к моему случаю?

Ответ №1:

Вы могли бы передать ссылку на Class1 в Class2. Таким образом, внутри Class2 вы можете получить доступ к спискам массивов по ссылке Class1. например

   Class2 objClass2 = new Class1(objClass1);
  

Комментарии:

1. @user569008 Мне кажется, что это самый простой подход, поскольку у вас есть только один объект для передачи, я думаю, что второй подход с сохранением их в другой структуре тоже может сработать. Мое личное предпочтение — это решение.

2. В Class1 у меня есть другие общедоступные элементы, такие как свойства и методы, которые я не хочу отправлять / разрешать Class2. Также я думаю, что неэффективно отправлять так много данных из Class1, которые не будут использоваться в Class2.

3. В этом случае сохранение всех списков массивов в другой коллекции было бы таким же хорошим решением.

4. Но что выбрать, каковы плюсы / минусы обоих? Существует ли объединяющий шаблон проектирования, который близок к этому случаю?