Nel mio precedente lavoro Java, abbiamo cercato di evitare la definizione di interfacce per tutto, a meno che non avessimo realmente implementazioni multiple per questo. Questa potrebbe essere solo la mia opinione, ma se c'è solo un'implementazione, non vedo il valore in un'interfaccia - non stiamo realmente scrivendo codice generico, che potrebbe essere usato come una libreria.
Tuttavia, nel mio nuovo lavoro di Scala tendiamo ad usare i caratteri ovunque - molte cose come, DAO o "Servizio", avranno un tratto che definisce ciò che fanno nella parte superiore del file e quindi l'unica implementazione al di sotto esso.
per es.
trait WidgetDAO {
getAllWidgets(): Seq[Widget]
}
class RealWidgetDAO extends WidgetDAO {
getAllWidgets(): Seq[Widget] {
// ...
Sono nuovo di Scala, quindi c'è qualche motivo specifico di Scala per cui questo stile è comune nella nostra base di codici? O è la più generica regola del codice "Code to interfaces" che sta guidando questo, un po 'inutilmente?