Traits

19/36

Lectura

Traits

Existe un concepto en lenguajes de programaci贸n que se conoce como Mixin. Un mixin es algo que contiene funcionalidades que luego pueden ser juntadas en una sola entidad.

Los Traits son la manera de aplicar este concepto en Scala. Dentro de un Trait podremos colocar cualquier implementaci贸n de funciones y/o valores (o hablando en t茅rminos de programaci贸n orientada a objetos, m茅todos y/o atributos), esta implementaci贸n puede ser mezclada en un solo objeto tambi茅n (lo que se suele llamar como herencia m煤ltiple en programaci贸n orientada a objetos).

Un Trait se puede definir de la siguiente manera:

// Definici贸n de un trait
trait ejemplo {
  val valor = 5
  def funcion(x: Int) = x * x
}

// Para instanciarse debe usarse un objeto
object ejemplo extends ejemplo

Aunque los Traits son similares a las clases, se suele preferir en Scala para agrupar c贸digo. En vez que tener funciones sueltas, normalmente las agruparemos dentro de Traits.

Al igual que con las clases, los Traits nos permitir谩n definir tipos de datos.

Tambi茅n se puede definir un trait usando la palabra sealed trait . Hacerlo as铆 que evita que puedan instanciarse objetos usando ese trait por fuera del archivo de su definici贸n. S铆, en Scala es posible escribir muchas definiciones ya sea de clases, traits etc, en el mismo archivo (en Java por ejemplo, eso no se puede ya que el lenguaje nos obliga a usar un archivo por clase).

El uso de los sealed traits es 煤til para decirle al compilador que no debe hacer una b煤squeda en todo el c贸digo para saber d贸nde se est谩 usando, mejorando los tiempos de compilaci贸n.

M谩s adelante veremos en m谩s detalle uno de los usos m谩s importantes que se les da a los sealed traits.

Aportes 2

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Traits nos permitir谩n definir tipos de datos, se ve interesante

Veo mucho su utilidad, espero poder aplicarlo pronto a un proyecto para poder entenderlo al 100.