试图关注MVC - 寻求一个好的设计建议

saa*_*aad 6 oop model-view-controller objective-c

我刚刚恢复了一个旧项目的工作,并一直在考虑重写它的一些部分.

我的问题涉及如何构建我的程序.我一直在努力遵循MVC范式.我将从解释事物的位置开始:程序操纵4种类型的图像:偏差,黑暗,平场和灯光.我有一个叫做的类Image可以代表所有这些.从光中减去偏差和暗,然后将光除以平场.最初,我打算使用2个类,一个名为CalibrationImage,另一个名为Light.但差异只是一种方法,它将是我上面提到的分裂函数.否则,他们是一样的.所以我决定不再为此目的设两门课.

该程序的第二个主要类涉及处理多个Image对象 - 这个类被称为ImageStacker.截至目前,它将Image对象保存在可变数组中.它可以对此阵列执行各种操作,例如堆叠所有图像,校准它们等.

此类还充当NSTableView主窗口中对象的数据源.我不是认为没有一个可变数组,我应该有4个数组,每个数组都保持指定一种类型的图像(比如,一个用于Lights的数组,另一个用于Darks等).一旦程序开始实际工作,它将是Darks,Flat Fields和Bias框架.然后,它将校准Lights数组中保存的每个对象,然后将它们堆叠起来.我觉得这为程序提供了合乎逻辑的进展.它也有点容易想象.

这是一个很好的程序设计吗?它遵循MVC吗?我认为,我的观点是NSTableView,控制器是NSApplication和模型ImageStacker.但是,Image感觉它不是MVC的一部分,但我不知道如何在没有它的情况下编写程序.

Jay*_*Jay 1

我的 2 美分:MVC 是一种演示设计模式。我通常会使用除 MVC 部分之外的单独业务层和数据层来编写 MVC 应用程序。没关系,这Image不是 MVC 模式的一部分,它可能更适合您定义为业务层的一组类。有很多关于编程设计模式的好书、博客和文章,所以我不会重申他们已经做过的事情。简单地问这个问题就是一个好的开始。我建议您查看现有的内容来完成操作。