Design Pattern

Design Pattern : Composite

Posted on

Composite Analogy

Masih dengan topik tentang Design Pattern. Kali ini saya akan membahas tentang Design Pattern yang termasuk dalam Structural Pattern. Postingan sebelumnya telah membahas tentang Decorator Pattern. Composite Pattern digunakan untuk merepresentasikan sebuah hirarki objek sehingga dapat sebuah objek dapat menjadi komposisi bagi objek yang lain. Misalnya dianalogikan seperti ini, kita akan menggambar sebuah objek manusia. Objek manusia tersebut terdiri dari objek-objek dasar seperti garis, kotak, lingkaran, segitiga dan bentuk lainnya. Beberapa bentuk badan seperti mata dan kepala merupaka representasi dari objek dasar lingkaran.  Saat diimplementasikan, apabila kita tidak menggunakan composite pattern, kita harus mendefinisikan mata dan kepala menjadi sebuah class tersendiri. Yang menjadi masalah apabila ada banyak bentuk badan yang memiliki bentuk objek dasar yang sama. Ini berarti kita harus mendefinisikannya satu per satu. Saat program dikembangkan menjadi lebih komplek, kita akan semakin kewalahan dalam melakukan manajemen objek-objek tersebut. Dengan Composite Pattern, permasalahan ini dapat diselesaikan. Cara pendekatannya adalah dengan melakukan recursive composition sehingga memungkinkan sebuah objek dapat memanggil objek yang lain untuk dijadikan komposisinya. Baca entri selengkapnya »

Iklan

Design Pattern : Decorator

Posted on Updated on

Character Decorator Pattern

Masih dengan topik tentang Design Pattern. Kali ini saya akan membagi wawasan tentang Decorator Pattern. Artikel ini merupakan artikel ke-3 setelah artikel pertama dan kedua membahas tentang Strategy Pattern dan Observer Pattern. Jika kedua pattern awal merupakan jenis Behavioral Pattern, Decorator Pattern termasuk dalam jenis Structural Pattern.  Decorator Pattern digunakan dalam kondisi di mana sebuah objek memiliki responsibility yang didapatkan dari objek yang lain. Responsibility ini menyebabkan adanya nilai tambah pada objek yang ditempeli tersebut. Salah satu contoh dari responsibility ini adalah penghias boneka, dekorasi ruangan, senjata pada mainan action figure, di mana objek utamanya adalah boneka, ruangan, atau action figure itu sendiri. Ada contoh menarik dari buku Erich Gamma yang mengangkat tentang penggunaan atribut / properti pada objek TextView yang memiliki atribut border dan scroll. Kira-kira ilustrasinya sebagai berikut.

Ilustrasi Konsep Decorator Pada  TextView
Ilustrasi Konsep Decorator Pada TextView

Baca entri selengkapnya »

Design Pattern : Observer

Posted on Updated on

Observer Pattern merupakan salah satu teknik yang digunakan dalam Design Pattern. Berbeda dengan Strategy Pattern yang saya jelaskan di postingan sebelumnya, Observer Pattern ini digunakan dalam kondisi MVC di mana sebuah model dapat ditampilkan secara paralel di lebih dari 1 view. Kondisi ini diilustrasikan dengan diagram berikut.

MVC Relationship
MVC Relationship

Dilihat dari ilustrasi di atas, sebuah View yang menerima data dari Model juga dapat memberikan request perubahan data untuk diteruskan ke Model, dan kemudian View yang lain menerima respon dengan mengubah data tersebut. Ini seringkali terjadi pada sebuah software multiplatform yang memiliki banyak chart untuk menampilkan data dan saling synchronize. Penggunaan Observer Pattern dapat diaplikasikan dalam kondisi berikut (mengutip dari buku Erich Gamma) :

  • When an abstraction has two aspects, one dependent on the other. Encapsulating these aspects in separate objects lets you vary and reuse them independently.
  • When a chane to one object requires changing others, and you don’t know how many objects need to be changed.
  • When an object should be able to nofity other objects without making assumptions about who these objects are. In other words, you don’t want these objects tightly coupled.

Baca entri selengkapnya »

Design Pattern : Return Strategy

Posted on Updated on

DesignPattern

Mulai semester ini, saya akan sedikit berbagi pengetahuan tentang design pattern, sebuah teknik dalam Software Engineering yang memungkinkan source code yang dibangun menjadi modular. Teknik ini menjadikan software dapat dimaintain secara lebih mudah dan terorganisir, walaupun dengan kompleksitas yang tinggi sekalipun. Design Pattern menjadi sesuatu yang harus diketahui bagi teman-teman yang bercita-cita menjadi seorang Analyst maupun Software Architect. Dengan menggunakan Design Pattern, seorang Software Architect dapat merencanakan dan merancang arsitektur software sehingga lebih tertata. Design Pattern memiliki banyak hubungan dengan OOP (Object Oriented Programming). Bila diibaratkan kita sedang mempelajari bahasa asing, OOP merupakan tata bahasanya, sedangkan Design Pattern merupakan teknik conversation sehari-hari. Design pattern ini memiliki variasi sekitar 23 jenis, cukup banyak bukan. Dapat disimpulkan Design Pattern menjadi faktor penting dalam pengembangan software. Sebagai media belajar, teman-teman bisa menggunakan buku Design Patterns : Elements of Reusable Object Oriented Software, karya Erich Gamma. Baca entri selengkapnya »