Fluent İnterface Design Pattern Kullanımı

Uzun zamandan sonra yeni bir blog yazısıyla yine burdayım. Bildiğimiz gibi design pattern’lar bizim için pratiklikler sağlayan, hata olasılığımızı azaltan yapılardır.Daha önce bu yazımda factory design pattern’dan bahsetmiştim.Bugünkü tasarım deseni konumuz ise Fluent Interface Design Patternyani türkçe karşılığı ile akıcı arayüz ya da akıcı arabirim tasarım deseni. Fluent Interface zaman zaman method zincirleme olarak da geçer.Lafı daha fazla uzatmadan ilk örnek kodlarımızı yazalım.
name=$name;

}

function setSurname($surname)
{
$this->surname=$surname;

}

function getNameandSurname()
{
echo “Name:”.”   “.$this->name.” “.”Surname:”.” “.$this->surname;
}

}

$pp=new Person();
$pp->setName(“Kayhan”);
$pp->setSurname(“Ozturk”);
$pp->getNameandSurname();
?>
Gördüğünüz gibi gayet basit bir class oluşturup, name ve surname gibi attribute’larımıza değerler atadık ve ekrana bastırdık.Oluşturduğumuz $pp değişkenini her işlem için kullandığımızı görüyoruz.Fluent olayı işte burada giriyor aslında.Object Oriented kurallarına göre methodların işleminden sonra geriye obje döndürürsem, sınıf adı döndürmüş olacağım.Ve böylece de tek bir $pp değişkeniyle, bütün methodlarımı çalıştırabileceğim.Demek istediğim tam olarak şöyle;
name=$name;
return $this;
}

function setSurname($surname)
{
$this->surname=$surname;
return $this;
}

function getNameandSurname()
{
echo “Name:”.”   “.$this->name.” “.”Surname:”.” “.$this->surname;
}

}

$pp=new Person();
$pp->setName(“Kayhan”)->setSurname(“Ozturk”)->getNameandSurname();
?>
Bu class’da set işlemlerinden sonra return $this eklendi ve tek değişkenle bütün methodları çalıştırmış olduk.Yani fluent interface design pattern’ı kullanmış olduk.

NOT: Design Pattern’lar dillerden bağımsızdırlar.Aynı tasarım desenini başka bir programlama dili ile de yazabilirsiniz.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir