Попытка следовать MVC - Обращение за советом по хорошему дизайну

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

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

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

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

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

6
задан saad 9 June 2011 в 15:02
поделиться