2010-04-26 9 views
5

Klasyczny silnie wpisany wzorzec MVP wygląda to w Scala:Poprawa MVP w 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(...) 
} 

Teraz zastanawiam się, czy jest jakiś dobry sposób, aby poprawić na nim których mi brakuje ...

+1

Chociaż ciekawy temat, to nie jest dobre, więc pytanie. Jest bardzo szeroki i bardzo mało prawdopodobne, aby miał jakąkolwiek obiektywną, obiektywną odpowiedź. – jpswain

+1

@ orange80 Dodałem nagrodę na wypadek, gdyby ludzie znaleźli lepsze rozwiązanie, takie jak radzenie sobie z cykliczną zależnością Wyświetl do prezentera. Może jednak lepiej byłoby użyć wiki społeczności. –

+0

@ Mark Jayxcela: Niestety, nie mogę zrobić z tego wiki społeczności ... –

Odpowiedz

2

Dobrą cechą wzorca MVP jest to, że umożliwia testowanie jednostki kodu UI.

Proponuję, abyś unikał tworzenia prezentacji w prezencie i przekazywania go konstruktorowi. To pozwoli ci po prostu wyśmiewać View i przetestować jednostkę Presenter.

Wymień Ci kod

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

z

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