PHP OOP - Arayüzler
PHP - Arayüzler nedir?
Arabirimler, bir sınıfın hangi yöntemleri uygulaması gerektiğini belirlemenize olanak tanır.
Arayüzler, çeşitli farklı sınıfları aynı şekilde kullanmayı kolaylaştırır. Bir veya daha fazla sınıf aynı arabirimi kullandığında buna "polimorfizm" denir.
Arayüzler interface
anahtar kelime ile bildirilir:
Sözdizimi
<?php
interface InterfaceName {
public function someMethod1();
public function someMethod2($name, $color);
public function
someMethod3() : string;
}
?>
PHP - Arayüzler ve Soyut Sınıflar
Arayüz soyut sınıflara benzer. Arayüzler ve soyut sınıflar arasındaki farklar şunlardır:
- Arabirimler özelliklere sahip olamazken, soyut sınıflar
- Soyut sınıf yöntemleri genel veya korumalı iken tüm arabirim yöntemleri genel olmalıdır.
- Bir arabirimdeki tüm yöntemler soyuttur, bu nedenle kodda uygulanamazlar ve soyut anahtar kelime gerekli değildir.
- Sınıflar, aynı anda başka bir sınıftan miras alırken bir arabirim uygulayabilir
PHP - Arayüzleri Kullanma
Bir arabirim uygulamak için, bir sınıf implements
anahtar kelimeyi kullanmalıdır.
Bir arabirim uygulayan bir sınıf, arabirimin tüm yöntemlerini uygulamalıdır.
Örnek
<?php
interface Animal {
public function makeSound();
}
class Cat implements Animal {
public function makeSound() {
echo "Meow";
}
}
$animal = new Cat();
$animal->makeSound();
?>
Yukarıdaki örnekten yola çıkarak, bir grup hayvanı yöneten bir yazılım yazmak istediğimizi varsayalım. Tüm hayvanların yapabileceği eylemler vardır, ancak her hayvan bunu kendi tarzında yapar.
Arayüzleri kullanarak, her hayvan farklı davransa bile tüm hayvanlar için çalışabilecek bazı kodlar yazabiliriz:
Örnek
<?php
// Interface definition
interface Animal {
public
function makeSound();
}
// Class definitions
class Cat
implements Animal {
public function makeSound() {
echo " Meow ";
}
}
class Dog implements Animal {
public function makeSound()
{
echo " Bark ";
}
}
class Mouse implements Animal {
public function makeSound() {
echo " Squeak ";
}
}
// Create a list
of animals
$cat = new Cat();
$dog = new Dog();
$mouse = new
Mouse();
$animals = array($cat, $dog, $mouse);
// Tell the animals
to make a sound
foreach($animals as $animal) {
$animal->makeSound();
}
?>
Örnek Açıklama
Cat, Dog ve Mouse, Animal arabirimini uygulayan sınıflardır; bu, hepsinin makeSound()
yöntemi kullanarak ses çıkarabileceği anlamına gelir. Bu nedenle, her birinin ne tür bir hayvan olduğunu bilmesek bile tüm hayvanlar arasında dolaşabilir ve onlara ses çıkarmalarını söyleyebiliriz.
Arayüz sınıflara yöntemin nasıl uygulanacağını söylemediği için her hayvan kendi tarzında ses çıkarabilir.