Performancing Metrics

Crear Fluent Interfaces en C # - Return(GiS);

Return(GiS);

Crear Fluent Interfaces en C #

Este artículo fue reubicado por problemas de código. Disculpad las molestias.

Posted: 4/7/2010 20:25 por Gisela | con 17 comment(s) |
Archivado en:
Comparte este post:

Comentarios

Eugenio Estrada ha opinado:

¿Realmente haría falta la clase Computer?

¿No nos llegaría con "unir" el comportamiento de Computer-Machine y acceder al objeto actual this?

# July 5, 2010 10:23 AM

Gisela ha opinado:

Hola Eugenio,

Si que podemos omitir la clase Machine e incluir directamente sus propiedades dentro de Computer y así ahorrarnos dicha clase (Creo que es a eso a lo que te refieres).

El motivo por el que he decidido incluirla en vez de eliminarla es porque, si se sigue ampliando dicho ejemplo, las propiedades incluidas dentro de Machine son un conjunto y por lo tanto un objeto en sí (Están dentro de la máquina).

Si el día de mañana quiero añadir periféricos a la clase Computer igual crearía un List<Devices> o algo así. Solamente era porque no me parece elegante soltar las propiedades directamente en computer cuando se compone de más objetos :)

Gracias por tu comentario :D

¡Saludos!

# July 5, 2010 10:35 AM

El Bruno ha opinado:

Cada día lo creo mas ... ASP.NET MVC los lleva al lado oscuro !! :P

Salu2

# July 5, 2010 11:51 AM

Eduard Tomàs i Avellana ha opinado:

MMmmm...

Las ventajas de una fluent interface no son solamente que el código es más "legible" (que también) sinó sobre todo que como desarrollador que uso una fluent interface, su uso es mucho más sencillo, ya que la interfaz me ofrece sólo en cada momento aquellos métodos (o propiedades) relevantes para lo que estoy haciendo (en contraposición a una interfaz "tradicional" donde se me exponen todos los métodos y yo debo escoger cual quiero).

Si se usa junto con algo tipo "intellisense" (y que IDE no lleva algo parecido hoy en dia?) el resultado es brutal: vas descubriendo los métodos y propiedades "a medida que las necesitas"...

saludos! ;-)

# July 5, 2010 12:03 PM

Gisela ha opinado:

Gracias por la aportación Eduard :) No caí en ello cuando lo escribí.

¡Saludos!

# July 5, 2010 12:13 PM

Lentucky ha opinado:

¿Se parece al WITH de VB, o es deja vu?

# July 6, 2010 9:45 PM

ATP ha opinado:

En la declaracion private readonly IMachine _machine; creao que el tipo de dato es Machine o esta sin definir la interface IMachine.

Saludos y gracias.

# July 21, 2010 2:49 PM

Gisela ha opinado:

Hola a todos,

@Lentucky, creo que si... La verdad es que hace mucho que abandoné el VB.NET pero viene siendo lo mismo sólo que ahora se estila también en C#...

Hola @ATP, el tipo de la variable privada _machine es correcto: Debe ser IMachine. Esto es así porque la clase Machine está implementando dicha interfaz cuando cambio el ejemplo a Fluent Interface... sólo que no mostré esa parte en el ejemplo :/ Lo agrego entonces para que quede más claro :) ¡Gracias por la observación! :D

¡Saludos!

# July 21, 2010 3:04 PM

Jesús Bosch ha opinado:

Me parece una moda curiosa esto de las fluent interfaces. Supongo que triunfará como la cocacola :-P

# July 21, 2010 3:05 PM

Gisela ha opinado:

Gracias por tu comentario Jesús :)

La verdad es que he visto utilizarla en varias APIS y demás y queda bastante elegante :D Yo empecé a usarlo hace poco para extender los controles de ASP.NET MVC.

¡Saludos!

# July 21, 2010 3:59 PM

Gisela ha opinado:

Hola de nuevo,

Después de todas las personas que han preguntado sobre la semejanza del WITH de VB.NET con Fluent Interface, el Guille ha escrito un artículo sobre ello:

www.elguillemola.com/.../fluent-interface-no-es-solo-simular-el-with-de-vb

Espero que resuelva las dudas :)

¡Saludos!

# July 23, 2010 6:30 PM

Lentucky ha opinado:

Si no estoy en un error, la gran diferencia entre el uso de una interfaz y el with de VB es que con el último NO estamos obligados a utilizar todos los miembros, métodos y propiedades de la interfaz.

Ahora, una pregunta: ¿no se compromete el rendimiento al tener que tener una interfaz por cada objeto, sólo para tener un código más "mantenible"?

¡Saludos!

# July 24, 2010 9:41 AM

Edgardo ha opinado:

A mi lo de Fluent Interfaces me parece genial

saludos

# August 11, 2010 1:13 AM

Eduard Tomàs i Avellana ha opinado:

@Lentucky

El uso de interfaces no compromete en absoluto el rendimiento... o sea que tranquilo en este punto! :)

La verdad es que como comenta Guille en el enlace que ha pasado Gisela, Fluent Interfaces es un tema mucho más complejo que el encadenamiento de métodos (aunque este sea lo primero que se vea). Puedes pensar que una interfaz fluida es una interfaz que "se va describiendo a si misma a medida que la vas usando". A ver si algún dia de estos saco algo de tiempo y comento algo más al respecto en mi blog!

Un saludo!

# August 11, 2010 7:03 PM

Gisela ha opinado:

Hola Edgardo,

A mi también me gusta mucho la idea :)

@Eduard Gracias por tu aportación...

¡Saludos!

# August 11, 2010 8:09 PM

Shuster ha opinado:

Hola, soy un desarrollador nuevo en ASP.NET MVC

y este tema de las "fluent interfaces" me parece interesante, espero pronto hacer uso de ellas.

Saludos!!

# August 21, 2010 7:04 PM

Gisela ha opinado:

Hola Shuster,

Me alegra que te haya parecido interesante, creo que es una forma bastante bonita de hacer las cosas :)

¡Gracias por tu comentario!  ¡Saludos!

# September 21, 2010 10:39 PM