【发布时间】:2016-10-21 22:18:28
【问题描述】:
我有一个关于 iOS 中控制器业务逻辑设计的问题,
当我有一个可以重复用于多个页面的 viewController 以及一些不同的元素(例如 navigationItem 标题、API 调用、不同的单元格高度或类型)时,什么是正确的方法?
我现在正在做的是为它添加枚举,比如
enum(controllerType) {
typeA
typeB
}
并且对于每个方法需要配置不同的元素,我做这样的事情
switch type {
case typeA:
//Changes for type A
case typeB:
//Changes for type B
}
特别是对于tableViewController,有时需要配置另外一种类型的cell,所以tableView的delegate和dataSource的业务逻辑会很繁重
像在另一个文件或类别/扩展中分离委托/数据源一样进行轻微优化,将业务逻辑分离到另一个文件类型中,例如“viewModel”,并在 viewModel 中使用方法而不是在 viewController 中使用繁重的逻辑,但它仍然会有很大的方法在 viewModel 中,那么设计重用控制器的正确方法是什么?
【问题讨论】:
标签: ios uitableview model-view-controller software-design