In Scala, a volte la classe estende un tratto per fornire alcuni metodi per estendere la classe all'interno .
import org.scalatest._
class ExampleSpec extends FlatSpec with Matchers { ...
Matchers
trait fornisce un metodo utile come startWith
, endWith
o include
.
string should startWith ("Hello")
string should endWith ("world")
string should include ("seven")
Il problema è semplice, " ExampleSpec
non è Matchers
".
Estende per interruzioni di funzionalità Principio fondamentale OOP.
Questo extends
è fonte di confusione soprattutto per il lettore di codice o il nuovo arrivato.
Penso che dovremmo usare import
come import scalatest.matchers._
.
Questo non altera l'albero ereditario.
Si estende per le cattive pratiche delle funzionalità in Scala? o ragionevole estende l'utilizzo?