¿Qué es un setter fluido?

imagen

Hoy en PhpStorm creé una variable privada y noté que el IDE me ofrece crear dos tipos de setters: el setter regular y el setter fluido.

El término "acomodador fluido" no lo he conocido antes, así que creé ambas opciones.

/* PHP */ class Foo { private $var; //  setter public function setVar($var) { $this->var = $var; } //  fluent setter public function setVar($var) { $this->var = $var; return $this; } } 

Sí, entonces el colocador fluido es el colocador que devuelve el objeto en sí .

Que cosa tan estúpida. ¿Quién podría necesitar un diseño de vista?

 $object = $object->setVar(1); //     ,    $object->setVar(1); //      ,   $sameObject = $object->setVar(1); 

Esto es a primera vista.

Un poco más tarde supuse. Esto es lo que se llama encadenamiento jQuery. Gracias al objeto devuelto, podemos aplicar inmediatamente el siguiente setter.

 /* Javascript */ $('#elementId').val(13).css('font-size', '20px').appendTo(element2); //     : $('#elementId') .val(13) .css('font-size', '20px') .appendTo(element2); 

Los setters fluidos están diseñados para hacer el código más claro y limpio.

Sí, en Javascript esto es notable. En Java y PHP también. Además, ya hay funciones de configuración utilizadas activamente, entonces, ¿por qué no hacerlo en la versión fluida?

 /* php */ $car->setColor('#f00')->setWeight('1200')->setPower(55000); $car ->setColor('#f00') ->setWeight('1200') ->setPower(55000); 

en Python, por supuesto, puedes escribir funciones setter, pero los beneficios no son obvios. Sería más conveniente para mí personalmente usar el configurador Python habitual, que no se ve como una función, sino como un operador de asignación. Hacer setters de la forma set_var () en Python, en mi opinión, contradice las ideas de simplicidad de Python.

 # python #  @property car.color = '#f00' car.weight = 1200 car.power = 55000 # fluent-,    .   ?   . car.color('#f00').weight('1200').power(55000) #      ... car.set_color('#f00').set_weight('1200').set_power(55000) #    ,    ,     . car.set_color('#f00') \ .set_weight('1200') \ .set_power(55000) 

Más tarde encontré un artículo sobre la interfaz fluida, donde encontré un ejemplo visual más agradable en python .

El minuto de autoeducación ha terminado.

Source: https://habr.com/ru/post/es429020/


All Articles