具有多个行为模型的 ViewController

Posted

技术标签:

【中文标题】具有多个行为模型的 ViewController【英文标题】:ViewController with several behaviour models 【发布时间】:2016-09-15 09:23:07 【问题描述】:

假设我有两个视图控制器。在第一个视图控制器上,我需要选择 N 个选项中的一个,并且根据此选项,第二个视图控制器具有不同的行为。在实践中,我可以调用相同的方法,但使用不同的实现,但我不想在每个方法中传递描述视图控制器当前模式的参数(枚举)或每次都进行切换。这个案例最相关的设计方案是什么?

【问题讨论】:

【参考方案1】:

这取决于您的 N 值(第一个视图控制器上的选项)以及它们之间的差异。

如果 N 更小并且彼此之间的差异更大,那么您应该为第二个屏幕设置单独的视图控制器。如果差异不大,您可以使用继承。

如果 N 很大,那么您应该对您的 N 选项进行分类,并为每个类别设置一个控制器,您可以使用枚举/标志在一个类别中进行自定义。

【讨论】:

【参考方案2】:

您应该使用继承。编写基类并重写基方法以适应每个子控制器。

【讨论】:

以上是关于具有多个行为模型的 ViewController的主要内容,如果未能解决你的问题,请参考以下文章

具有行为和 ORM 的丰富领域模型

keras 模型中损失函数的奇怪行为,具有预训练的卷积基础

这种类型的数据具有内置行为,不能以这种方式添加到模型中:System.Int64

具有行为路径重定向的多个 Cloudfront 源

Flutter 使用具有作用域模型的多个模型

具有多个模型的 Jwt