People Innovation Excellence

DELEGATION DESIGN PATTERN

Delegation, seperti yang dinyatakan oleh Merriam-Webster, adalah sebuah tindakan pemberdayaan  untuk tindakan yang lain dengan merepresentasikannya dalam bentuk sebuah kelompok (Merriam-Webster, n.d). Apple mendefinisikan bahwa delegasi adalah sebuah object yang bertindak sebagai dan berkoordinasi dengan object yang lain saat object bertemu dengan sebuah eventdalam sebuah program (Apple, n.d). Demikianlah, delegation dalam design pattern terlibat dengan inheritance manual melalui object composition(Best-Practice Software Engineering, n.d).Delegation dalamdesign pattern sendiri tidak berbeda jauh dengan arti general dari delegation.Inheritance berperilaku sama dengan cara, mempunyai sikap pemberdayaan terhadap pemberdayaan yang lain dengan bertindak sebagai representasi object yang lain. Di samping itu, object composition bertindak sebagai representasi kelompok. Pola dari delegation sering di gunakan dalam iOS dan OS X development per 2015, seperti yang di nyatakan oleh Bart Jacobs (Jacobs, 2015).

Problem:
Pola dari delegation digunakan saat metode coupling dalam classes butuh untuk dikurangi dan saat components yang bertindak sama harus diubah untuk keadaan masa depan(Best-Practice Software Engineering, n.d).

Solution:
Delegation bersikap sebagai sebuah alternatif untuk inheritance.Inheritance mendefinisikan hubuangan dekat antara parent dan child object dan juga coupling objects dengan dekat. Mengekspresikan hubungan antara classes melaluidelegation dinyatakan lebih fleksibel, karena classes-nya tidak coupled secara berdekatan dengan object-nya(Best-Practice Software Engineering, n.d).

Contoh dari sebuah delegation pattern (Best-Practice Software Engineering, n.d):

Berikut adalah sebuah interface, dibuat untuk delegation di atas.  Delegation dapat dipertukarkan sehingga mereka harus mengimplementasikan interface yang sama.

Berikut adalah sebuah class ‘cat’ yang menggunakan ‘MeowSound’ secaradefault:

Berikut adalah class ‘Main’ untuk menguji pola delegation :

Keuntungan dalam menggunakan delegation adalah (Jacobs, 2015):

  1. Pola dari delegation dapat digunakan kembali.
  2. Loose coupling dapat terjadi dalam delegation, membuat object graph menjadi fleksibel.
  3. Delegation memisah-misahkan tanggung jawab. Karena itu, membuat tanggung jawab setiap object lebih jelas.

REFERENCES:

Delegation. (n.d). In Merriam-Webster. Retrieved October 23, 2017, from https://www.merriam-webster.com/dictionary/delegation.

Best-Practice Software Engineering. (n.d).Delegation Pattern. Retrieved October 23, 2017, from http://best-practice-software-engineering.ifs.tuwien.ac.at/patterns/delegation.html

Jacobs, B. (2015, May 22). Design Patterns: Delegation. Retrieved from https://code.tutsplus.com/articles/design-patterns-delegation–cms-23901

Apple. (n.d).Delegates and Data Sources. Retrieved October 23, 2017, from https://developer.apple.com/library/content/documentation/General/Conceptual/CocoaEncyclopedia/DelegatesandDataSources/DelegatesandDataSources.html

Penulis:
Wafa Aufiya – 1901509344
Ivana Lemmuela Salim – 1901487223

Lecturer:
Meilana – D4572

 


Published at : Updated
Written By
Wafa Aufiya , Ivana Lemmuela Salim
Student of Computer Science Program | School of Computer Science

Periksa Browser Anda

Check Your Browser

Situs ini tidak lagi mendukung penggunaan browser dengan teknologi tertinggal.

Apabila Anda melihat pesan ini, berarti Anda masih menggunakan browser Internet Explorer seri 8 / 7 / 6 / ...

Sebagai informasi, browser yang anda gunakan ini tidaklah aman dan tidak dapat menampilkan teknologi CSS terakhir yang dapat membuat sebuah situs tampil lebih baik. Bahkan Microsoft sebagai pembuatnya, telah merekomendasikan agar menggunakan browser yang lebih modern.

Untuk tampilan yang lebih baik, gunakan salah satu browser berikut. Download dan Install, seluruhnya gratis untuk digunakan.

We're Moving Forward.

This Site Is No Longer Supporting Out-of Date Browser.

If you are viewing this message, it means that you are currently using Internet Explorer 8 / 7 / 6 / below to access this site. FYI, it is unsafe and unable to render the latest CSS improvements. Even Microsoft, its creator, wants you to install more modern browser.

Best viewed with one of these browser instead. It is totally free.

  1. Google Chrome
  2. Mozilla Firefox
  3. Opera
  4. Internet Explorer 9
Close