В настоящее время я разрабатываю приложение для построения диаграмм (для iPhone, хотя это в значительной степени не имеет значения) с использованием их шаблона MVC.
Одним из аспектов приложения является то, что вы можете наложить несколько статистических данных на графиках. Я немного не уверен, как я собираюсь структурировать эти классы.
Для каждой статистики будет два аспекта.
1. Расчет. Функция, которая будет принимать данные и вычислять соответствующие статистические показатели.
2. Дисплей. Затем необходимо построить статистику поверх графика.
Очевидно, я хочу, чтобы код максимально соответствовал шаблону MVC, но я планирую разработать, возможно, сотни таких статистических данных.
Я мог бы создать три класса. Один для графики, один для логики и фабричного класса, чтобы связать их вместе. Тогда это будет соответствовать шаблону, но это, похоже, потребует огромных дополнительных затрат с точки зрения количества классов в системе и дополнительной сложности, которую я не считаю необходимой.
Итак, мне очень хочется создать отдельный класс для каждой статистики. Но это будет означать, что в каждом классе будут смешиваться логика и графика, что вызывает неодобрение.
Есть ли какие-либо другие предложения относительно того, как их можно структурировать для повторного использования, не добавляя ненужной сложности?
EDIT
Спасибо за ответы. Наиболее полезно, но подняло больше вопросов!
MVC отлично подходит для остальной части приложения. Также как и для iPhone, я, кажется, в любом случае продвигаюсь по этому пути. Это единственная причина, по которой я рассматриваю MVC для этой статистики.
Однако, для этой статистики пользователь не будет взаимодействовать с ними, они предназначены исключительно для отображения. Статистика рисует различные линии и символы прямо на холсте представления. Каждая статистика рисует свою информацию по-своему. Очень мало что может быть разделено между каждым, также каждый фрагмент данных может быть полезен только в одном виде. Я не могу придумать другого полезного способа, которым я хотел бы представлять информацию.
Так что, похоже, MVC для этого не подходит, но я не уверен, какой шаблон сейчас подойдет, кроме моего недавно изобретенного шаблона "Смешать логику и графику", который просто кажется неправильным из-за принципа единой ответственности ( спасибо за эту ссылку).