Ale*_*nov 5 mvp user-interface design-patterns scala
经典的强类型MVP模式在Scala中看起来像这样:
trait IView { }
trait Presenter[View <: IView] { // or have it as an abstract type member
val view : View
}
case class View1(...) extends IView { ... }
case object Presenter1 extends Presenter[View1] {
val view = View1(...)
}
Run Code Online (Sandbox Code Playgroud)
现在,我想知道是否有任何改善它的好方法,我错过了...
MVP 模式的好处是它使您的 UI 代码单元可测试。
我建议您避免在演示者中实例化视图并将其传递给构造函数。这将允许您模拟View并单元测试Presenter.
替换你的代码
case object Presenter1 extends Presenter[View1] {
val view = View1(...)
}
Run Code Online (Sandbox Code Playgroud)
和
case object Presenter1(val view: View1) extends Presenter[View1] {
...
}
Run Code Online (Sandbox Code Playgroud)