Facade Desain Pola
Oleh
chmood
Facade Desain Pola
Menyediakan antarmuka yang seragam untuk satu set interface
dalam subsistem. Fasad mendefinisikan antarmuka tingkat tinggi yang membuat
subsistem lebih mudah digunakan.
Bungkus subsistem yang rumit dengan antarmuka sederhana.
Masalah
Segmen masyarakat kebutuhan klien antarmuka disederhanakan
untuk fungsi secara keseluruhan dari subsistem yang kompleks.
Diskusi
Fasad membahas encapsulating subsistem yang kompleks dalam
objek antarmuka tunggal. Hal ini mengurangi kurva belajar yang diperlukan untuk
berhasil memanfaatkan subsistem. Hal ini juga mempromosikan decoupling
subsistem dari berpotensi banyak klien. Di sisi lain, jika Facade adalah
satu-satunya jalur akses untuk subsistem, itu akan membatasi fitur dan
fleksibilitas yang "power user" mungkin perlu.
Objek Facade harus menjadi advokat yang cukup sederhana atau
fasilitator. Seharusnya tidak menjadi oracle semua-mengetahui atau
"tuhan" objek.
Struktur
Fasad mengambil "teka-teki dibungkus dalam sebuah
teka-teki diselimuti misteri", dan menyela pembungkus yang menjinakkan
massa amorf dan ajaib dari software.
SubsystemOne dan SubsystemThree tidak berinteraksi dengan
komponen internal SubsystemTwo. Mereka menggunakan SubsystemTwoWrapper
"fasad" (yaitu semakin tinggi tingkat abstraksi)
Contoh
The Facade mendefinisikan terpadu, antarmuka tingkat yang
lebih tinggi untuk subsistem yang membuatnya lebih mudah untuk digunakan.
Konsumen menemukan Facade ketika memesan dari katalog. Konsumen panggilan satu
nomor dan berbicara dengan perwakilan layanan pelanggan. Perwakilan layanan
pelanggan bertindak sebagai Facade, menyediakan sebuah antarmuka untuk
departemen pemenuhan pesanan, departemen penagihan, dan departemen pengiriman.
Mengidentifikasi sederhana, antarmuka yang seragam untuk
subsistem atau komponen.
Desain 'wrapper' kelas yang merangkum subsistem.
Fasad / wrapper menangkap kompleksitas dan kolaborasi dari
komponen, dan delegasi ke metode yang tepat.
Penggunaan klien (digabungkan ke) satu-satunya Facade.
Pertimbangkan apakah Fasad tambahan akan menambah nilai.
Fasad mendefinisikan antarmuka baru, sedangkan Adapter
menggunakan antarmuka lama. Ingat bahwa Adapter membuat dua antarmuka yang ada
bekerja sama sebagai lawan mendefinisikan yang sama sekali baru.
Sedangkan kelas terbang menunjukkan bagaimana membuat banyak
benda kecil, Facade menunjukkan bagaimana membuat satu objek mewakili seluruh
subsistem.
Mediator mirip dengan façade dalam hal abstrak fungsi kelas
yang ada. Abstrak Mediator / memusatkan komunikasi sewenang-wenang antara objek
rekan. Ini rutin "menambah nilai", dan dikenal / direferensikan oleh
objek rekan. Sebaliknya, Facade mendefinisikan antarmuka sederhana untuk
subsistem, itu tidak menambahkan fungsi baru, dan tidak diketahui oleh kelas
subsistem.
Abstrak Pabrik dapat digunakan sebagai alternatif untuk
fasad menyembunyikan kelas-platform tertentu.
Benda fasad sering lajang karena hanya satu objek fasad
diperlukan.
Adaptor dan Facade keduanya pembungkus; tetapi mereka
berbagai jenis pembungkus. Maksud dari Facade adalah untuk menghasilkan
antarmuka sederhana, dan maksud dari Adapter adalah untuk merancang sebuah
antarmuka yang ada. Sementara Facade rutin membungkus beberapa objek dan
Adapter membungkus satu objek; Fasad bisa front-end obyek yang kompleks tunggal
dan Adapter bisa membungkus beberapa objek warisan.
Pertanyaan: "Jadi cara untuk membedakan antara pola Adapter
dan pola Facade adalah bahwa Adapter yang membungkus satu kelas dan Facade
mungkin mewakili banyak kelas?
Jawaban: "Tidak ada! Ingat, pola Adapter mengubah antarmuka
dari satu atau lebih kelas menjadi satu antarmuka yang klien mengharapkan.
Sementara sebagian contoh buku teks menunjukkan adaptor beradaptasi satu kelas,
Anda mungkin perlu menyesuaikan banyak kelas untuk menyediakan antarmuka klien
adalah kode untuk. Demikian juga, sebuah Facade dapat menyediakan antarmuka
disederhanakan untuk satu kelas dengan antarmuka yang sangat kompleks.
Perbedaan antara keduanya adalah tidak dalam hal berapa banyak kelas mereka
"membungkus", itu adalah dalam niat mereka.
Category
Komentar