Улучшение MVP в Scala - PullRequest
       10

Улучшение MVP в Scala

5 голосов
/ 27 апреля 2010

Классический строго типизированный шаблон 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(...)
}

Теперь мне интересно, есть ли какой-нибудь хороший способ улучшить его, которого мне не хватает ...

1 Ответ

2 голосов
/ 24 февраля 2012

Отличительной особенностью шаблона MVP является то, что он позволяет тестировать ваш код UI.

Я бы посоветовал вам избежать создания экземпляров представления в Presenter и передать его конструктору. Это позволит вам просто смоделировать View и провести модульное тестирование Presenter.

Замените ваш код

case object Presenter1 extends Presenter[View1] { 
  val view = View1(...)
}

с

case object Presenter1(val view: View1) extends Presenter[View1] { 
  ...
}
...