En muchos aspectos, me gusta mucho la idea de interfaces fluidas, pero con todas las características modernas de C # (inicializadores, lambdas, parámetros con nombre) me encuentro pensando, "¿vale la pena?" Y "¿Es este el patrón correcto para ¿utilizar?". ¿Podría alguien darme, si no una práctica aceptada, al menos su propia experiencia o matriz de decisión sobre cuándo usar el patrón Fluido?
Conclusión:
Algunas buenas reglas generales de las respuestas hasta ahora:
- Las interfaces fluidas ayudan enormemente cuando tiene más acciones que los configuradores, ya que las llamadas se benefician más del traspaso de contexto.
- Las interfaces fluidas deben considerarse como una capa sobre la parte superior de una API, no el único medio de uso.
- Las características modernas, como lambdas, inicializadores y parámetros con nombre, pueden funcionar de la mano para hacer que una interfaz fluida sea aún más amigable.
Aquí hay un ejemplo de lo que quiero decir con las características modernas que lo hacen sentir menos necesario. Tomemos, por ejemplo, una interfaz fluida (quizás un mal ejemplo) que me permite crear un empleado como:
Employees.CreateNew().WithFirstName("Peter")
.WithLastName("Gibbons")
.WithManager()
.WithFirstName("Bill")
.WithLastName("Lumbergh")
.WithTitle("Manager")
.WithDepartment("Y2K");
Podría escribirse fácilmente con inicializadores como:
Employees.Add(new Employee()
{
FirstName = "Peter",
LastName = "Gibbons",
Manager = new Employee()
{
FirstName = "Bill",
LastName = "Lumbergh",
Title = "Manager",
Department = "Y2K"
}
});
También podría haber utilizado parámetros con nombre en los constructores en este ejemplo.