扩展与类用作ViewModel

时间:2017-07-23 20:06:44

标签: ios swift model-view-controller mvvm architecture

优点和优点这些方法中的每一个都有关于创建文件的缺点,该文件负责视图配置以减少控制器文件大小。

主要焦点是:

  • 内存
  • 性能
  • 测试
  • 可用性

这是最简单,能够工作的示例来演示这个问题,但是当使用许多方法存在许多视图时,上述任何问题都会在比较扩展和扩展时发生变化。 ViewModel Class?

提醒:ViewModel类或扩展名将放在单独的文件中。

ViewModel方法

    class VC: UIViewController {
        lazy var viewModel: ViewModel {
            return (main: self)
        }()

        ovverride viewDidLoad() {
            super.viewDidLoad()

            initializeUI()
        }


        func initializeUI() {
            viewModel.configureView()
        }
    }



    class ViewModel {
        private let main: UIViewController

        init(main: UIViewController) {
            self.main = main
        }

        func configureView() {
            main.view.backgroundColor = UIColor.blue
        }
    }

扩展方法

    class VC: UIViewController {
        lazy var viewModel: ViewModel(main: self)

        ovverride viewDidLoad() {
            super.viewDidLoad()

            initializeUI()
        }


        func initializeUI() {
            configureView()
        }
    }

    extension VC {
        func configureView() {
            main.view.backgroundColor = UIColor.blue
        }
    }

0 个答案:

没有答案