PHP ile Trait ve Interface Kullanımları

Nesne yönelimli programlama yaparken kalıtım ve tekrar kullanım başlıkları önemli rol oynuyor. PHP üzerinde sınıflar tanımlanırken kullanabileceğimiz konseptlerden birkaçını aşağıda karşılaştırarak anlatmaya çalışacağım.

Trait

Pek çok sınıfta kullanma durumumuz olabilecek method ve değerleri bir trait içine toplayarak bunu ilgili sınıflara uygulanabilir.

Bir sınıfa birden fazla trait uygulanabilir. Uygulanırken use anahtar kelimesi kullanılır.

Trait içinde tanımlanmış bir method sınıf içinde de tanımlanırsa bu tanım geçerli olacaktır, trait içindeki tanımı geçersiz kılacaktır.

Yukarıdaki örnekte iki tip ürün için stok yönetimi trait’i tanımladık. Fakat sınırsız stoklu ürün için stok kontrolü methodunu geçersiz kıldık.

Interface

Türkçesi arayüz olan interface ise sınıfımız yapısı için bir şablon bir kalıp oluşturmamıza yarar.

Bu şablonda tanımlı methodların içini doldurmak sınıfın işidir, interface sadece sınıfta tanımlanması zorunlu olan elemanları barındırır. Trait’ten en büyük farkı da buradadır.

Bir sınıfa birden fazla interface uygulanabilir. Uygulanırken implements anahtar kelimesi kullanılır.

Yukarıdaki örnekte implement ettiğimiz PaymentGateway arayüzü sayfasında diğer iki sınıfımızda initiatePayment metodu olması gerektiğini anlıyoruz. Eğer bu metodu tanımlamazsak hata ile karşılaşırız.


Yayımlandı

kategorisi

yazarı:

Etiketler: