控制器业务逻辑设计iOS

时间:2016-10-21 22:18:28

标签: ios uitableview model-view-controller software-design

我对iOS中的控制器业务逻辑设计有疑问,

当我有一个可以重复用于多个页面的viewController,以及一些不同的元素,比如navigationItem标题,API调用,不同的单元格高度或类型,这样做的正确方法是什么?

我现在正在做的是为它添加枚举,比如

enum(controllerType) {
    typeA
    typeB
}

对于每种方法需要配置不同的元素,我做这样的事情

switch type {
    case typeA:
    //Changes for type A
    case typeB:
    //Changes for type B
}

有时对于tableViewController,需要在某种类型中添加另一种类型的配置,因此tableView委托和dataSource将具有繁重的业务逻辑

轻松优化另一个文件或类别/扩展中的单独委托/ dataSource,将业务逻辑分离为另一种文件类型,例如' viewModel'并且在viewMtroller中使用viewModel中的方法而不是重逻辑,但它在viewModel中仍然有大的方法,那么设计重用控制器的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以设置来自哪个控制器的字符串属性(例如isComingFrom),并将该字符串的检查放在您重用的公共视图控制器中。希望它会对你有所帮助。