Default interfaces Methods en C# 8.0 y Mix-ins.

Mix-in es un patrón de diseño proveniente de lenguajes orientados a objetos que son interpretados. El término se refiere a un componente que ofrece funcionalidad única y exclusivamente para ser utilizada por otra clase a través de la herencia o importación. El mix-in no se considera una clase completa. Incluso es posible que el lenguaje que uses tenga mecanismos distintos para componer módulos y heredar funcionalidad (véase Ruby).

¿Qué es un Default Interface Method en C#?.

Un default interface method es un método implementado en una interfaz, disponible a partir de la versión 8 de C#, ejemplo:

Mix-Ins en C#.

Antes de la versión 8 de C# no existía la herencia de métodos implementados por otro componente que no fuera una clase. Las interfaces no ofrecían la posibilidad de implementar comportamiento, solo lo definían. Con la llegada de los métodos por defecto en las interfaces, este cambio un poco. Ya podrías hablar de implementar interfaces que solamente tienen el propósito de ofrecer sus métodos para ser empleados por otras clases, pero, la cosa no funciona así. Para poder acceder a los métodos implementados en una interfaz dentro y fuera de la clase debes hacer un casteo explícito. No vas a tener la ilusión de que son métodos de instancia (como sucede con los métodos de extensión). Ejemplo:

 

Default interface methods no son herencia múltiple.

Nunca ha existido el concepto de herencia múltiple en C#, y parece que las cosas van a continuar así. Default interfaces methods es una iteración del uso de implementaciones explícitas de interface, funcionan exactamente igual, con la diferencia de donde se declara la implementación, que ahora puede ser en la interface o la clase que implementa.

Conclusiones.

Bueno, antes de redactar este artículo tenía la seguridad de que el concepto de mix-in era un equivalente de esta nueva característica de C#, al menos, no es así en su totalidad.  Esta característica nueva de C# puede ayudarte a reutilizar código, no la veas como el uso de módulos, no funciona de esta forma y no es para eso.

 

Gustavo Sánchez

Soy especialista en escribir software de calidad. Mediante el uso de marcos de trabajo, técnicas y automatización de procesos he podido reducir los costes operativos de los sistemas de la empresa. Sistemas confiables y adaptables producen clientes felices.

1 comments On Default interfaces Methods en C# 8.0 y Mix-ins.

Comments are closed.

Site Footer