Mode Penampilan: Juga dikenal sebagai Fasad Mode: Penampilan Fasad menyediakan antarmuka yang konsisten untuk serangkaian antarmuka subsistem, membuat set subsistem ini mudah digunakan (mengurangi kompleksitas sistem asli dengan memperkenalkan peran penampilan baru, sambil mengurangi kopling antara kelas klien dan subsistem).
Sumber Gambar: Pola Desain: Dasar perangkat lunak berorientasi objek yang dapat digunakan kembali.
menyelesaikan
Persyaratan Kasus: Sewa rumah
Siswa yang pernah mengalami menemukan rumah dan menyewa rumah dapat menyadari bahwa menemukan rumah adalah hal yang sangat menyakitkan. Mereka tidak hanya harus lari dari komunitas ke komunitas, tetapi juga harus tawar -menawar dengan pemilik (kedua). Jadi mereka belajar untuk menjadi pintar dan tidak lagi berbicara satu sama lain, tetapi secara langsung menemukan agen real estat seperti Lianjia dan saya mencintai keluarga saya. Mereka memiliki sejumlah pasokan perumahan di tangan mereka. Kami hanya perlu membayar komisi, sehingga mereka dapat melakukan tawar -menawar dengan pemilik atas nama kami. Sebagian besar dari mereka sangat profesional, menghemat waktu dan uang. Pada saat ini, agen real estat adalah fasad, dan penyewa rumah adalah subsistem subsistem:
Fasad
Kelas Penampilan: Tahu subsistem mana yang bertanggung jawab untuk menangani permintaan, dan proksi permintaan klien ke objek subsistem yang sesuai:
kelas publik mediumfacade {private cuiyuanapartment cuiyuan; Private Xixiapartment Xixi; xihuapartment pribadi xihu; mediumfacade publik () {cuiyuan = cuiyuanapartment baru ("Komunitas Cuiyuan", 900, 1); xixi = xixiapartment baru ("taman xixi", 1200, 1); xihu = xihuapartment baru ("komunitas xihu", 2600, 1); } public void renthouse (harga ganda) {// Harga sesuai dan ada rumah untuk membentuk jika (harga> = cuiyuan.getprice () && cuiyuan.getStatus ()! = 0) {System.out.println ("Subscribe" + cuiyuan.getlocation ()); cuiyuan.setstatus (0); } else if (price> = xixi.getPrice () && xixi.getStatus ()! = 0) {System.out.println ("berlangganan" + xixi.getLocation ()); xixi.setstatus (0); } else if (price> = xihu.getPrice () && xihu.getstatus ()! = 0) {System.out.println ("Reservasi" + xihu.getLocation ()); xihu.setstatus (0); } else {System.out.println ("Tawaran terlalu rendah/tidak ada daftar ..."); }}} Subsistem
Koleksi Subsistem: Menerapkan fungsi subsistem dan menangani tugas yang ditetapkan oleh objek fasad (perhatikan bahwa tidak ada informasi fasad dalam subsistem, yaitu, tidak ada referensi objek fasad):
/** * @Author Jifang * @since 16/8/23 10:12 AM. */kelas publik xihuapartment {private string location; harga ganda pribadi; status int pribadi; xihuapartment publik (lokasi string, harga ganda, status int) {this.location = lokasi; this.price = harga; this.status = status; } public String getLocation () {return location; } public double getPrice () {harga kembali; } public int getStatus () {status return; } public void setstatus (status int) {this.status = status; }} class xixiapartment {private string location; harga ganda pribadi; status int pribadi; PUBLIK XIXIAPARTMENT (Lokasi String, Harga Ganda, Status Int) {this.location = Lokasi; this.price = harga; this.status = status; } public String getLocation () {return location; } public double getPrice () {harga kembali; } public int getStatus () {status return; } public void setstatus (status int) {this.status = status; }} kelas cuiyuanapartment {private string location; harga ganda pribadi; status int pribadi; cuiyuanapartment publik (lokasi string, harga ganda, status int) {this.location = lokasi; this.price = harga; this.status = status; } public String getLocation () {return location; } public double getPrice () {harga kembali; } public int getStatus () {status return; } public void setstatus (status int) {this.status = status; }} Klien
Dengan cara ini, klien hanya menghubungi agen real estat dan memberi kami kutipan, dan mereka akan membantu kami menghubungi semua tuan tanah yang bertemu:
klien kelas publik {@test public void client () {mediumfacade fasad = new mediumfacade (); facade.rentinghouse (800); }}ringkasan
Siswa yang memiliki pengalaman dalam pengembangan yang berorientasi pada objek mungkin telah menggunakannya bahkan jika mereka belum pernah mendengar pola penampilan, karena ia dengan sempurna mewujudkan gagasan tentang prinsip inversi ketergantungan dan hukum Dimit, yang merupakan salah satu pola yang paling umum digunakan.
menggunakan
Pertama-tama, pada tahap awal desain, Anda harus secara sadar memisahkan tingkat hierarkis, seperti arsitektur tiga lapis klasik, membangun fasad antar lapisan, yang dapat memberikan antarmuka sederhana untuk subsistem kompleks dan sangat mengurangi tingkat kopling.
Kedua, pada tahap pengembangan, subsistem sering menjadi semakin kompleks karena rekonstruksi yang berkelanjutan. Menambahkan fasad dapat memberikan antarmuka sederhana dan mengurangi ketergantungan antar modul.
Ketiga, ketika mempertahankan sistem warisan, sistem mungkin sangat sulit untuk dipelihara dan diperluas, tetapi karena berisi fungsi yang sangat penting, persyaratan baru harus bergantung padanya. Pada saat ini, fasad dapat dikembangkan untuk sistem baru, memberikan antarmuka yang relatif jelas dan sederhana untuk merancang kode warisan kasar atau kompleks tinggi, memungkinkan sistem baru untuk berinteraksi dengan fasad, dan fasad berinteraksi dengan kode warisan untuk semua pekerjaan yang rumit.
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.