Diferencia entre Incluir y Extender en Ruby

by admin

El lenguaje de programación Ruby tiene un par de maneras de combinar los métodos de dos clases. Las clases son colecciones de métodos relacionados y miembros de datos. Dos clases pueden combinar sus métodos que utilizan las sentencias de inclusión o ampliar. Ambas declaraciones son especializados para un propósito diferente y lograr cosas diferentes.

Métodos de clase

Extender añade especificados métodos módulos como métodos de la clase a la clase de destino. Los métodos de clase están disponibles para todas las instancias de la clase de destino. Eso significa que todos los objetos creados en base a la clase de destino tienen acceso a los métodos de cualquier clase que se extiende. Por lo tanto, extender es una forma más universal para incluir métodos en una clase, ya que afecta a todas las instancias de esa clase.

Métodos de instancia

Incluir añade especificados métodos módulos como los métodos de instancia a la clase de destino. Los métodos de instancia sólo están disponibles para la instancia específica de la clase de destino. Cualquier otra clase del mismo tipo no tiene acceso a los métodos de la clase incluidos, a menos que también tiene el método invocado incluir en él.

Acceso variable

Una clase de destino tiene acceso a las variables de cualquier otra clase que se ha incluido. Extender no facilita este acceso.

Pública o privada

Incluir es un método privado, y extender es un método público. Esto significa que se debe invocar incluye dentro de un cuerpo de la clase.

ETIQUETA: