/

Детализация моделей при проектировании

Проектирование

Определимся, что будем считать моделью. Модель - это программное описание объктов реального мира (классы, структуры или их группа). Так вот эта модель должна быть максимально адекватной решаемой задаче.

Давайте рассмотрим простой пример, у нас есть заказ в магазине. Тогда в программе нужно будет описать объекты продавца, товаров, магазина, заказа, может что-то еще. Сконцентрируемся на продавце, который является человеком, вынеся остальные модели за скобки. Человек бесконечно сложный объект, он состоит из огромного количества клеток, имеет разные органы, рост, вес, родителей, список принадлежащих ему вещей и множество других параметров, относящихся к нему. Естественно совсем не все эти параметры необходимо тащить в код программы, а только те из них, которые необходимы для решения поставленной перед программой задачи.

В задаче продажи полисов ОСАГО для описания клиента нужно будет:

  • - ФИО
  • - Дата рождения
  • - Дату выдачи водительского удостоверения

В задаче выдачи потребительского кредита:

  • - ФИО
  • - Дата рождения
  • - Семейное положение
  • - Уровень доходов
  • - Рабочий стаж
  • - ИНН

В задаче ведения медицинских карт для пациента:

  • - ФИО
  • - Дата рождения
  • - Рост
  • - Вес
  • - Группа крови

Не нужно тянуть в программу избыточную информацию об объектах, заставляя гадать разработчиков в будущем, зачем это было сделано. Для задачи приема заказа в магазине для описания продавца нам будет достаточно полей с ФИО и ИНН (для печати в чеке).