Sheet和WindowController委托 - 这是一个好方法吗?

时间:2011-06-16 13:14:20

标签: objective-c cocoa design-patterns delegates

我正在使用工作表向用户询问应用程序执行操作的一些信息。该工作表有大约10到15个选项(分为4个选项卡,因此它是一个相对干净的UI),程序的其余部分在继续之前需要知道。

现在,我为名为SheetController的工作表设置了一个单独的窗口控制器类。 SheetController有一个委托属性,主控制器AppController被设置为委托。

当用户在工作表中单击“确定”时,将通知委托并执行名为didClickDone:(id)sender withParameters:(id)parameters的方法。 parameter是一个包含工作表中各种属性的对象。我的问题是,这是处理表格和从中返回数据的好方法吗?

其次,困扰我的一件事是parameter只是一个死对象 - 它只有访问器方法。它不对它们进行任何操作,因为它的全部目的是将数据“传送”到主控制器,主控制器又将信息传递给程序的模型。而且,除非我遗漏了某些内容,否则我不应该只声明parameter是一个普通的C结构吗?或者为了这种目的使用对象是否有优势?

编辑:通过NSDictionary是否是一个很好的妥协?我可以用字典中的密钥保存返回的信息,然后传递它。

1 个答案:

答案 0 :(得分:0)

也许我不会直接通过按钮事件处理程序通知控制器 调用另一个例程来封装关于如何将数据提交给模型的逻辑。

不要担心空物体。是使用它的常见模式,称为DataTransferObject