如何在 iOS 应用程序上构建干净的表示层

How to construct clean presentation layer on iOS app

我用 DDD 做了一个应用 我能够制作干净的域层,域与其他层明显分开。

但是表示层的控制器很乱。

ViewControllers有多重责任 即使域已成功分离。 ViewController 往往有多重责任,例如

通常有许多 ViewController 功能略有不同。

如果尝试使用模板方法制作那些,ViewController 的层次结构会变得太复杂。

如果尝试制作那些没有模板方法的,将会有许多 ViewController 共享一些功能。这种方式很容易改变。

有哪些最佳做法? 如何在 iOS 应用程序上构建干净的表示层?

实际上,Cocoa MVC often leads to massive-view-controller problem. The solution is to move to a more fine grained architecture like MVP or VIPER

在 iOS 上的 MVP 中,视图由 UIViewController(或裸 UIView)表示,因此 UIViewController 不再加载业务逻辑。

VIPER 层数更多,还解决了 UI 导航任务。