Langsung ke konten utama

Contoh Decorator Pattern di PHP

Decorator Pattern dimaksudkan untuk mengubah atau menambah perilaku/fungsionalitas sebuah object/instance dari sebuah class tanpa mengubah perilaku object-object dari class yang sama.


Berikut ini adalah contoh penerapan decorator pattern dengan menggunakan bahasa pemprograman PHP

class ParentClass {
  public function __construct(){
    // your code
  }
  public function functionNumberOne(){
    // your code
  }
}

class DecoratorClass extends ParentClass {
  private $decorated;
  public function __construct(ParentClass $objectToGetDecorated){
    parent::construct();
    $this->decorated = $objectToGetDecorated;
    // your code
  }
  public function functionNumberOne(){
    // if you want to call the original method then call it :)
    $this->decorated->functionNumberOne();
    // your code
  }
  public function newAddedFunction(){
    // your code
  }
}

$a = new ParentClass;
$b = new ParentClass;
$bDecorated = new DecoratorClass($b);

Perbedaan dengan inheritance/ pewarisan:
  • Pewarisan mengubah class
  • Decorator mengubah object/instance

Daftar Pustaka
Kontributor Wikipedia. 2013. Decorator pattern. (Online) Wikipedia, The Free Encyclopedia. http://en.wikipedia.org/w/index.php?title=Decorator_pattern&oldid=586454896 . diakses 21 Desember 2013 00:06

Komentar

Postingan populer dari blog ini

Perbandingan hasil findElements() Selenium yang menggunakan (XPath)[index] versus Xpath

Object hasil findElements() dari XPath dengan index lebih konsisten daripada yang didapat dari iterasi hasil findElements() XPath tanpa index. #selenium #web #automation

Memasang Android 4.4 KitKat di Samsung Galaxy W (Wonder) GT-I8150

Membuat backup Singkronisasikan handphone (contact, dll) Saya membuat backup SMS dengan SMS To Text, dan riwayat panggilan dengan Call Logs Backup and Restore Download Download Android SDK Tools Windows: http://dl.google.com/android/installer_r22.3-windows.exe Linux: http://dl.google.com/android/android-sdk_r22.3-linux.tgz Android SDK Tools juga terdapat dalam pake Android SDK Windows 32 bit: http://dl.google.com/android/adt/adt-bundle-windows-x86-20131030.zip Linux 32 bit: http://dl.google.com/android/adt/adt-bundle-linux-x86-20131030.zip Download ClockworkMod (CWM) Recovery Versi minimal untuk memasang CM 11 adalah versi 6.0.4.4. Jika menggunakan versi yang dibawah/sebelum itu, akan muncul pesan kesalahan "set_metadata_recursive: some changes failed" pada saat memasang CM nantinya. Download versi versi 6.0.4.5 di http://goo.im/devs/arco/ancora/cwm/recovery-clockwork-6.0.4.5-ancora.zip Download CyanogenMod (CM) 11 http://goo.im/devs/arco/ancor...

Rekomendasi Untuk Mempersingkat Waktu Eksekusi Katalon Web Test

Latar Belakang Permasalahan Salah satu kriteria test yang baik adalah memiliki coverage yang baik. Tetapi lamanya waktu eksekusi seringkali jadi salah satu alasan untuk men- take out case - case yang ada agar test menjadi layak untuk ditunggu eksekusinya dan layak untuk dieksekusi sesering kebutuhan yang men- trigger -nya. Untuk itu diperlukan langkah-langkah untuk mempersingkat waktu tunggu test semaksimal mungkin tanpa harus mengeluarkan case - case yang telah disiapkan sebelumnya. Designed by Freepik Lingkungan Eksekusi Tes Pada tulisan ini diasumsikan test dieksekusi pada lingkungan CI/CD yang: 1. menggunakan commandline katalonc dari KRE (Katalon Runtime Engine). 2. Tiap job pipeline CI/CD bisa mengeksekusi beberapa test suite yang berbeda secara berurutan Rekomendasi Kesepakatan Sepakati dengan user , batas waktu test maksimum Batas waktu test perlu disepakati agar test bisa diakhiri dengan kesimpulan FAILED, jika melebihi batas waktu yang disepakati Sepakati dengan user , ...