Попытка следовать MVC - Ищу советы по хорошему дизайну - PullRequest
6 голосов
/ 09 июня 2011

Я только что возобновил работу над старым проектом и думал о переписывании некоторых его частей.

Мой вопрос касается того, как структурировать мою программу.Я пытался следовать парадигме MVC.Я начну с объяснения положения вещей: программа манипулирует 4 типами изображений: смещение, темные, плоские поля и источники света.У меня есть класс с именем Image, который может представлять все это.Смещение и Темнота вычитаются из Света, а затем Свет делится на Плоское Поле.Изначально я собирался использовать для этого 2 класса, один из которых называется CalibrationImage, а другой просто Light.Но различие было только в одном методе, который был бы функцией деления, которую я упомянул выше.В остальном они одинаковые.Поэтому я решил не использовать два класса для этой цели.

Второй основной класс в программе касается обработки нескольких Image объектов - этот класс известен как ImageStacker.На данный момент он содержит Image объектов в изменяемом массиве.Он может выполнять различные операции с этим массивом, например складывать все изображения, калибровать их и т. Д.

Этот класс также выступает в качестве источника данных для объекта NSTableView в главном окне.Я не думаю, что вместо одного изменяемого массива у меня должно быть 4 массива, каждый из которых содержит свой тип изображения (например, массив для источников света, другой для темных и т. Д.).Как только программа начнет свою реальную работу, в ней появятся кадры Darks, Flat Fields и Bias.Затем он откалибрует каждый объект в массиве Lights и затем сложит их.Я чувствую, что это обеспечивает программу логическим развитием.Его также немного легко визуализировать.

Это хороший дизайн программы?Это следует за MVC?На мой взгляд, мой взгляд NSTableView, контроллер NSApplication и модель ImageStacker.Но тогда Image кажется, что он не является частью MVC, но я не вижу, как написать программу без него.

1 Ответ

1 голос
/ 10 июня 2011

Мои 2 цента: MVC - это шаблон дизайна презентации.Обычно я пишу свои приложения MVC с отдельными уровнями бизнеса и данных, кроме части MVC.Это нормально, что Image не является частью шаблона MVC, возможно, он лучше вписался бы в группу классов, которые вы бы определили как бизнес-уровень.Есть много хороших книг, блогов и статей, в которых говорится о программировании шаблонов дизайна, поэтому я не буду повторять то, что они уже сделали.Просто задать этот вопрос - хорошее начало.Я бы посоветовал вам ознакомиться с уже доступным контентом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...