Cocoa 委托是否类似于mvc控制器?
我看到这篇文章: “委托==控制器 “委派”和“控制器”这两个词可以同义使用……” 我不确定他在说什么,但在编程方面,我比我更了解mvcCocoa 委托是否类似于mvc控制器?,cocoa,model-view-controller,delegates,controller,Cocoa,Model View Controller,Delegates,Controller,我看到这篇文章: “委托==控制器 “委派”和“控制器”这两个词可以同义使用……” 我不确定他在说什么,但在编程方面,我比我更了解mvc 这两个代理相似吗?代理是运行以捕获事件的后台进程。它们是控制器,因为您可以从我们友好的MVC软件工程动态中识别它们。一个事件可能是按钮按下屏幕触摸震动等。。。。代表是Cocoa用来区分的词,正如《如何指导》一书的作者所说,它使它们“可互换”。希望这能有所帮助他们真的处于不同的水平 使用委托的类是一个类(任何类),其设计目的是使自定义行为可以由另一个对象提供,
这两个代理相似吗?代理是运行以捕获事件的后台进程。它们是控制器,因为您可以从我们友好的MVC软件工程动态中识别它们。一个事件可能是按钮按下屏幕触摸震动等。。。。代表是Cocoa用来区分的词,正如《如何指导》一书的作者所说,它使它们“可互换”。希望这能有所帮助他们真的处于不同的水平 使用委托的类是一个类(任何类),其设计目的是使自定义行为可以由另一个对象提供,而不是(比如)通过子类化 e、 g.大多数Cocoa应用程序在应用程序启动时都会想做一些定制的事情(如果没有,那就太无聊了)。不是要求每个Cocoa应用程序实现一个自定义的
NSApplication
子类来覆盖–applicationWillFinishLaunching:
,NSApplication
的设计是,如果您将它的委托
属性设置为有效对象,该对象有一个–applicationWillFinishLaunching:
方法,它将调用该方法
这样,您就可以在设置中使用您喜欢的任何类,而不必使其成为NSApplication的子类
许多Cocoa类都是这样工作的,这意味着您几乎不需要对它们进行子类化来添加自定义行为。在其他一些语言和框架中,添加自定义行为的方式应该是子类化。想要java中的自定义按钮吗?只需创建一个扩展JComponent并实现MouseListener的新类,然后重写mouseClicked等。这不是Cocoa的方法
如您所知,控制器是负责协调模型和视图的对象
事实上,如果您需要向模型对象或视图对象的实例添加自定义行为(例如,您有一个NSTableView对象,并且您希望在选中一行时添加自定义行为),那么您可能已经有一个自定义控制器对象,而这通常是放置代码的最佳位置。只需设置TableView的.delegate=controller。我们可以看到tableView有一个委托方法-tableViewSelectionDidChange:
您不必创建NSTableView的子类
我不认为这意味着一个委托人和一个控制器是完全一样的。