Facade Desain Pola

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.





Komentar