LAPORAN
POLA - POLA PERANCANGAN
Implementasi Abstract Factory
Oleh :
Aulia Augusta (212410102056)
PROGRAM STUDI TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER
UNIVERSITAS JEMBER
2024
Implementasi Abstract Factory
Abstract Factory adalah salah satu design pattern creational yang mengizinkan
memproduksi keluarga atau objek yang berelasi tanpa mendefinisikan classnya secara
langsung. Hanya dari objek yang dilempar, dengan sebuah class factory, kita langsung dapat
mendapatkan hasil produknya. Cara kerja Abstract Factory adalah dengan mendefinisikan
antarmuka atau kelas abstrak yang bertanggung jawab untuk membuat kumpulan objek
terkait, seperti kumpulan objek yang terkait dengan tampilan grafis atau tema tertentu dalam
sebuah aplikasi. Kemudian, kelas konkret yang mengimplementasikan antarmuka ini
digunakan untuk membuat instansiasi objek-objek sesuai dengan jenis atau varian yang
dibutuhkan.
Misalnya, dalam sebuah permainan, kita mungkin memiliki Abstract Factory untuk
menciptakan berbagai jenis senjata. Kita bisa memiliki kelas abstrak WeaponFactory yang
memiliki metode-metode seperti createMeleeWeapon() dan createRangedWeapon().
Kemudian, kita bisa memiliki implementasi konkret seperti ElfWeaponFactory dan
OrcWeaponFactory, yang akan membuat senjata-senjata yang cocok dengan karakteristik
Elf dan Orc dalam permainan tersebut.
Dengan menggunakan Abstract Factory, kode aplikasi dapat lebih fleksibel dan dapat
dengan mudah ditambahkan atau dimodifikasi untuk mendukung jenis objek baru atau varian
yang berbeda tanpa perlu mengubah bagian-bagian lain dari kode yang sudah ada.
Implementasi Abstract Factory
Berikut adalah contoh implementasi abstract factory. Dengan pola desain Abstract Factory
ini, kita dapat dengan mudah menambahkan jenis karakter baru dan memodifikasi senjata
serta armor yang sesuai untuk setiap jenis karakter tanpa mengganggu klien atau kode yang
sudah ada.
Output
Penjelasan
1. ‘CharacterFactory’ adalah kelas abstrak yang mendefinisikan metode untuk membuat
senjata dan armor.
2. ‘ElfFactory’ dan ‘OrcFactory’ adalah implementasi konkret dari ‘CharacterFactory’
yang menciptakan senjata dan armor yang sesuai untuk karakter ‘Elf’ dan ‘Orc’.
3. ‘Weapon’ dan ‘Armor’ adalah kelas abstrak untuk senjata dan armor.
4. ‘Bow’, ‘Axe’, ‘Robe’, dan ‘Chainmail’ adalah implementasi konkret dari ‘Weapon’
dan ‘Armor’.
5. ‘Game’ adalah klien yang menggunakan Abstract Factory untuk membuat karakter
dengan senjata dan armor yang sesuai.
6. Pada saat eksekusi, kita membuat ‘ElfFactory’ dan ‘OrcFactory’, lalu menggunakan
mereka untuk membuat karakter ‘Elf’ dan ‘Orc’ masing-masing di dalam permainan.
Setiap karakter akan memiliki senjata dan armor yang sesuai dengan jenisnya.