Apa itu setter yang fasih

gambar

Hari ini di PhpStorm saya membuat variabel pribadi dan memperhatikan bahwa IDE menawarkan saya untuk membuat dua jenis setter: setter reguler dan setter fasih.

Istilah "setter lancar" saya belum pernah bertemu sebelumnya, jadi saya membuat kedua opsi.

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

Ya, jadi setter fasih adalah setter yang mengembalikan objek itu sendiri .

Bodoh sekali. Siapa yang mungkin membutuhkan desain tampilan

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

Sekilas ini.

Beberapa saat kemudian saya menebak. Inilah yang disebut chaining jQuery. Berkat objek yang dikembalikan, kita dapat langsung menerapkan setter berikutnya.

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

Setter fasih dirancang untuk membuat kode lebih jelas dan bersih.

Ya, dalam Javascript ini terlihat. Di Jawa dan PHP juga. Selain itu, sudah ada fungsi setter yang sudah digunakan secara aktif, jadi mengapa tidak melakukannya dalam versi fasih.

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

dalam Python, tentu saja, Anda dapat menulis fungsi setter, tetapi manfaatnya tidak jelas. Akan lebih nyaman bagi saya secara pribadi untuk menggunakan setter Python biasa, yang tidak terlihat seperti fungsi, tetapi sebagai operator penugasan. Untuk melakukan setter dari set_var () dalam Python, menurut pendapat saya, bertentangan dengan ide-ide kesederhanaan 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) 

Kemudian saya menemukan sebuah artikel tentang Antarmuka Lancar, di mana saya menemukan contoh python yang lebih eye -catching .

Menit pendidikan mandiri berakhir.

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


All Articles