Ios 这个MVC模式是什么:存根委托和数据源

Ios 这个MVC模式是什么:存根委托和数据源,ios,cocoa,design-patterns,model-view-controller,Ios,Cocoa,Design Patterns,Model View Controller,我的程序中有一些视图控制器,需要一些数据和运行方向。它们有一个数据源和委托属性,这些属性是在初始化时设置的(也许这就是问题所在?)。 在使用了一段时间之后,对于数据不变的简单用例来说,抽象正在成为一种痛苦。痛苦在于每个“调用者”都需要实现这些控制器所需的标准数据源和委托方法 解决方案是什么?更抽象!做一个中层管理者并使用以下方法是很有诱惑力的: self.myVC = [[MyViewController alloc] init]; id myVCSimpleDataSourceAndDeleg

我的程序中有一些视图控制器,需要一些数据和运行方向。它们有一个数据源和委托属性,这些属性是在初始化时设置的(也许这就是问题所在?)。 在使用了一段时间之后,对于数据不变的简单用例来说,抽象正在成为一种痛苦。痛苦在于每个“调用者”都需要实现这些控制器所需的标准数据源和委托方法

解决方案是什么?更抽象!做一个中层管理者并使用以下方法是很有诱惑力的:

self.myVC = [[MyViewController alloc] init];
id myVCSimpleDataSourceAndDelegate = [[MyVCSimpleDataSourceAndDelegate alloc] init];
myVCSimpleDataSourceAndDelegate.data = @[1, 2, 3];
myVC.dataSource = myVCSimpleDataSourceAndDelegate;
myVC.delegate = myVCSimpleDataSourceAndDelegate;
[self.navigationController pushViewController:myVC animated:YES];
这种方法很有吸引力,因为,例如,我的主视图控制器处理几个
MyViewController
s,只有几个不同的用例。目前,这使得我的主视图控制器中的大部分代码都集中在该管理上,这将缓解这种情况

这种方法的可怕之处在于,我以前从未听说过这种模式,而且我对发明新的抽象类型持谨慎态度


这种“中层管理者”是一种已知的设计模式,还是这种方法是一种MVC反模式?

我认为您无需担心。关于objc.io有一篇很好的文章,它正好处理了这个问题。请看这里:


另外,为了直接回答您的问题,我不认为这是一种命名模式,而是一种称为“关注点分离”的设计原则:

在“每个调用者都需要实现这些控制器所需的标准数据源和委托方法”中,“调用者”是什么意思?谢谢,这篇文章很棒