Anda di halaman 1dari 1

Abstract Factory Pattern (AFP) merupakan salah satu jenis Creational Pattern yang menangani

mekanisme penciptaan object secara adaptif. Abstract Factory menyediakan sebuah interface
yang bertanggung jawab untuk menciptakan suatu factory objek terkait, tanpa secara eksplisit
menentukan kelas mereka. Setiap factory yang dihasilkan dapat memberikan objek atau benda
sesuai dengan pola (motif) khasnya. Salah satu hal penting dari Abstract Factory adalah mampu
pengenkapsulasian sekelompok factory, dimana masing-masing factory memiliki “motif”
khasnya.
Tujuannya adalah

1. Menjadi sentral penentuan factory yang akan diinisialisasi sehingga product yang
diciptakan dapat mewarisi behaviour yang sesuai dengan motif yang dipilih
2. Product yang diciptakan terbebas dari pernyataan penciptaan concrete class secara
langsung. Hal ini memberikan keuntungan yaitu AFP dapat mencegah coupling problem
yang pasti terjadi apabila penciptaan object memakai operator new dalam bahasa OOP.
3. Tidak perlu membuat metode yang sama berulang. Client hanya akan berhubungan
dengan class abstract factory dan class concrete factory untuk mendapatkan objek
dengan motif tertentu yang diinginkan.

Digunakan apabila:

1. Client tidak mengerti apapun mengenai tipe dari class concrete, sehingga dengan AFP
tidak perlu menyertakan deklarasi class yang berhubungan dengan class concrete. Client
hanya berhubungan dengan abstract factory. Jadi client mengakses objek hanya melalui
abstract interface.
2. Sistem harus independen yaitu bagaimana produk dibuat, disusun dan direpresentasi
3. Sistem harus dikonfigurasi dengan salah satu dari beberapa family product.

Elemen-elemen penyusun pattern tersebut

1. Class Abstract Factory (sebuah interface), dimana Abstract Factory merupakan sebuah
interface yang mendefinisikan bagaimana cara untuk, membuat objek dari Abstract
Product. Maksud dari Abstract Factroy adalah menciptakan family dari objek yang
berkaitan tanpa harus bergantung pada concrete class-nya.
2. Class Concrete Factory, dimana kelas ini akan mengimplementasikan semua metode
pada AbstractFactory untuk membuat objek dari concrete Product.
3. Class Abstract Product, dimana kelas ini merupakan sebuah interface untuk
mendefinisikan tipe dari masing-masing objek produk.
4. Class Concrete Product, merupakan kelas yang akan mengimplementasikan semua
metode pada AbstractProduct.
5. Class Client, adalah kelas yang akan terhubung dengan kelas Abstrac Factory dan
Abstract Product.

Anda mungkin juga menyukai