PHP: Klases metožu saķēdēšana (chaining)

Kārtējais OOP triks. Tiesa gan šoreiz nevis par funkcionālo, bet gan par vizuālo. Tātad – metožu saķēdēšana jeb Class methods chainin jeb ganging jeb echo $thisDog->owner()->name();

Kārtējais OOP triks. Tiesa gan šoreiz nevis par funkcionālo, bet gan par vizuālo. Tātad – metožu saķēdēšana jeb Class methods chaining jeb ganging.

Definīcija: Divu vai vairāku datu elementu secīga sasaistīšana vienā veselumā. Datu saķēdēšanu lieto ievadizvades kanālu vadības programmās, kā arī sarakstos, kuri izvietoti dažādās atmiņas vietās, uzrādot nākamo adresi.
LZA TK Informācijas tehnoloģijas, telekomunikācijas un elektronikas apakškomisijas terminu datubāze

Runa ies par pieraksta veidu:

$person = new Person();
$person->setAge(23)
->setName('Peter')
->setName('Winifred')
->setAge(72)
->introduce(); 

Rezultātā iegūstam: Hello my name is Winifred and I am 72 years old.

Kā?

Triks ir tanī, ko funkcija atgriež. Šinī gadījumā $this.

class Person
{
  private $m_szName;
  private $m_iAge;

 public function setName($szName)
 {
  $this->m_szName = $szName;
  return $this;
 }

 public function setAge($iAge)
 {
  $this->m_iAge = $iAge;
  return $this;
 }

 public function introduce()
 {
  printf('Hello my name is %s and I am %d years old.',
  $this->m_szName,
  $this->m_iAge);
 }
} 

 

Izmantotie avoti:

http://www.phpandstuff.com/articles/php-method-chaining-plus-magic-setters

Dalies:
Novērtē: 4 (3)
Skatīts: 1297

komentāri



Ko lasa citi?