objective-c – 尝试关注MVC – 寻求有关优秀设计的建议

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

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

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

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

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

最佳答案
我的2美分:MVC是一种演示设计模式.我通常会将我的MVC应用程序与MVC部分分开编写单独的业务和数据层. Image不是MVC模式的一部分,它可能更适合您定义为业务层的一组类.有很多好书,博客和文章都在讨论编程设计模式,所以我不会重复他们已经完成的工作.简单地问这个问题是一个好的开始.我建议您通过查看已有的内容来完成.

转载注明原文:objective-c – 尝试关注MVC – 寻求有关优秀设计的建议 - 代码日志