首页 > 解决方案 > 协议覆盖的 Presenter 层

问题描述

我尝试编写松散耦合的代码,我想知道模型视图演示者架构模式中的演示者层是否应该被协议覆盖?

我有这样的演示者:

class WorkoutPresenter {

 weak var delegate: WorkoutPresenterDelegate?

 init(delegate: WorkoutPresenterDelegate) {
   self.delegate = delegate
 }
 
  func startWorkout() {
   .
   .
 }

 func endWorkout() {
 .
 .
 .
 }
}

后来当我们在视图控制器中初始化这个presenter时,我们不是创建了紧耦合的吗?

class WorkoutViewController {

 lazy var presenter = WorkoutPresenter(delegate: self)

}

我应该在演示者中使用协议吗?像这样的东西:

protocol WorkoutProtocols {
func startWorkout()
func endWorkout()
}

之后符合这些协议

class WorkoutPresenter: WorkoutProtocols {
.
.
. 
}
class WorkoutViewController: UIViewController {

 lazy var presenter: WorkoutProtocols = WorkoutPresenter()   

}

现在我们松耦合了?如果我错了请纠正我

我问这个问题是因为我在网络上看到了不同的方法,我有点困惑。

标签: swiftuikit

解决方案


推荐阅读