gpt4 book ai didi

ios - 这个 MVC 模式是什么 : a stub delegate and data source

转载 作者:行者123 更新时间:2023-11-29 10:37:41 26 4
gpt4 key购买 nike

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

解决方案?更抽象!做一个中层管理人员并使用类似这样的东西是非常诱人的:

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];

这种方法很有吸引力,因为例如,我的主视图 Controller 处理几个 MyViewController,只有几个不同的用例。目前,这使得我的主视图 Controller 中的大部分代码都集中在该管理上,这将减轻这种负担。

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

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

最佳答案

我认为您没有什么可担心的。 objc.io 上有一篇很棒的文章正好解决了这个问题。看这里:http://www.objc.io/issue-1/lighter-view-controllers.html

此外,为了直接回答您的问题,我不认为这是一个命名模式,而是一种称为“关注点分离”的设计原则:http://en.wikipedia.org/wiki/Separation_of_concerns

关于ios - 这个 MVC 模式是什么 : a stub delegate and data source,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26092605/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com