Расчет Динамических Объектов По Вектору



Введение Допустим, у нас есть набор объектов с некоторыми данными, и нам нужно манипулировать этими объектами.

Допустим, самый распространенный пример — наполнить корзину фруктами.

Мы реализуем некий класс Cart, в который будем добавлять фрукты.

Далее нам понадобится базовый класс Fruit, чтобы определить параметр объема, которому мы присвоим значение в зависимости от фрукта.

Проблема решена, фрукты добавляются до тех пор, пока объем корзины не достигнет порога.

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

.

И здесь начинается проблема.

Да, наш класс стал более универсальным, но не только количество проблем с фруктами может увеличиться, но и сами ситуации сбора фруктов могут быть другими.

Например, мы собираем фрукты, где абсолютно каждый фрукт будет свежим.

Зачем в таком случае нужно поле, отвечающее за свежесть, если все фрукты заведомо свежие? Отгородить ненужный функционал, указать обязательные и необязательные типы? - Конечно, нет. Мы помещаем ряд необязательных типов в массив (словарь), где каждый тип не является непосредственной частью класса.

Наш функционал снова стал умнее, отлично.

Однако я решил пойти дальше и немного развить эту тему.



Идея

Мы определяем тип, который будет отвечать за хранение необязательных переменных в строковом формате.

По сути, это оболочка над массивом.

В качестве минимального набора информации мы будем хранить имя переменной, тип (это может быть базовый, int, string, bool или композиция из нескольких базовых) и значение.

Методы этого объекта могут быть разнообразными, но я для себя выделил следующие:

  • получение списка переменных и их типов в строковом формате (в общем, можно ограничиться именами).

    Это может быть полезно, если мы хотим пометить какой-то объект как «начало координат».

  • геттер, который возвращает наш массив с информацией о переменных в постоянном формате.

  • получение идентификатора типа и значения из имени переменной (необходимо для приведения к определенному типу).

   

class IVariable {

Теги: #Алгоритмы #программирование #C++ #ООП #унификация #унификация #поток данных
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.