【发布时间】:2011-09-11 19:19:10
【问题描述】:
我刚刚恢复了一个旧项目的工作,并一直在考虑重写它的某些部分。
我的问题与如何构建我的程序有关。我一直在尝试遵循 MVC 范式。我将首先解释事情的位置:该程序处理 4 种类型的图像:偏差、黑暗、平面场和灯光。我有一个名为Image 的类可以代表所有这些。从光中减去偏差和暗,然后将光除以平场。最初,我打算为此使用 2 个类,一个称为 CalibrationImage,另一个称为 Light。但不同之处仅在于一种方法,即我上面提到的除法函数。否则,它们是相同的。所以我决定不为此开设两个课程。
程序中的第二个主要类涉及处理多个Image 对象——这个类被称为ImageStacker。截至目前,它将Image 对象保存在一个可变数组中。它可以对这个数组做各种操作,比如堆叠所有的图像,校准它们等等。
该类还充当主窗口中NSTableView 对象的数据源。我不认为我应该有 4 个数组,而不是拥有一个可变数组,每个数组都为一种图像指定其指定的类型(例如,一个用于 Lights 的数组,另一个用于 Darks 等)。一旦程序开始它的实际工作,它就会出现暗色、平场和偏色帧。然后它将校准 Lights 数组中的每个对象,然后将它们堆叠起来。我觉得这为程序提供了合乎逻辑的进展。它也有点容易可视化。
这是一个好的程序设计吗?它遵循 MVC 吗?如我所见,我的视图是NSTableView,控制器是NSApplication,模型是ImageStacker。但是,Image 感觉它不是 MVC 的一部分,但我看不出没有它如何编写程序。
【问题讨论】:
标签: objective-c oop model-view-controller