具有多个行为模型的 ViewController
Posted
技术标签:
【中文标题】具有多个行为模型的 ViewController【英文标题】:ViewController with several behaviour models 【发布时间】:2016-09-15 09:23:07 【问题描述】:假设我有两个视图控制器。在第一个视图控制器上,我需要选择 N 个选项中的一个,并且根据此选项,第二个视图控制器具有不同的行为。在实践中,我可以调用相同的方法,但使用不同的实现,但我不想在每个方法中传递描述视图控制器当前模式的参数(枚举)或每次都进行切换。这个案例最相关的设计方案是什么?
【问题讨论】:
【参考方案1】:这取决于您的 N 值(第一个视图控制器上的选项)以及它们之间的差异。
如果 N 更小并且彼此之间的差异更大,那么您应该为第二个屏幕设置单独的视图控制器。如果差异不大,您可以使用继承。
如果 N 很大,那么您应该对您的 N 选项进行分类,并为每个类别设置一个控制器,您可以使用枚举/标志在一个类别中进行自定义。
【讨论】:
【参考方案2】:您应该使用继承。编写基类并重写基方法以适应每个子控制器。
【讨论】:
以上是关于具有多个行为模型的 ViewController的主要内容,如果未能解决你的问题,请参考以下文章