โหมดลักษณะที่ปรากฏ: หรือที่รู้จักกันในชื่อโหมดซุ้ม: รูปลักษณ์หน้าให้อินเทอร์เฟซที่สอดคล้องกันสำหรับชุดของอินเทอร์เฟซของระบบย่อยทำให้ชุดของระบบย่อยนี้ใช้งานง่าย (ลดความซับซ้อนของระบบดั้งเดิมโดยการแนะนำบทบาทที่ปรากฏใหม่
แหล่งที่มาของภาพ: รูปแบบการออกแบบ: พื้นฐานของซอฟต์แวร์เชิงวัตถุที่นำกลับมาใช้ใหม่ได้
ทำให้สำเร็จ
ข้อกำหนดกรณี: เช่าบ้าน
นักเรียนที่เคยมีประสบการณ์ในการหาบ้านและการเช่าบ้านสามารถตระหนักได้ว่าการหาบ้านเป็นสิ่งที่เจ็บปวดมาก พวกเขาไม่เพียง แต่ต้องวิ่งจากชุมชนสู่ชุมชน แต่ยังต้องต่อรองกับเจ้าของบ้าน (ที่สอง) ดังนั้นพวกเขาจึงเรียนรู้ที่จะฉลาดและไม่ได้คุยกันอีกต่อไป แต่พบตัวแทนอสังหาริมทรัพย์โดยตรงเช่น Lianjia และฉันรักครอบครัวของฉัน พวกเขามีอุปทานที่อยู่อาศัยจำนวนหนึ่งในมือของพวกเขา เราเพียงแค่ต้องจ่ายค่าคอมมิชชั่นให้พวกเขาเพื่อให้พวกเขาสามารถต่อรองกับเจ้าของบ้านในนามของเรา ส่วนใหญ่เป็นมืออาชีพมากประหยัดเวลาและเงิน ในเวลานี้ตัวแทนอสังหาริมทรัพย์เป็นด้านหน้าและผู้เช่าบ้านเป็นระบบย่อยระบบย่อย:
ด้านหน้า
คลาสลักษณะที่ปรากฏ: รู้ว่าระบบย่อยใดที่รับผิดชอบในการจัดการคำขอและพร็อกซีคำขอของลูกค้าไปยังวัตถุระบบย่อยที่เหมาะสม:
ชั้นเรียนสาธารณะ MediumFacade {ส่วนตัว Cuiyuanapartment Cuiyuan; xixiapartment ส่วนตัว xixi; Xihuapartment ส่วนตัว Xihu; Public MediumFacade () {Cuiyuan = ใหม่ cuiyuanapartment ("ชุมชน Cuiyuan", 900, 1); xixi = ใหม่ xixiapartment ("Xixi Garden", 1200, 1); xihu = ใหม่ xihuapartment ("ชุมชน xihu", 2600, 1); } โมฆะสาธารณะ Rentinghouse (ราคาสองเท่า) {// ราคาเหมาะสมและมีบ้านในรูปแบบถ้า (ราคา> = cuiyuan.getPrice () && cuiyuan.getStatus ()! = 0) {System.out.println ( cuiyuan.setstatus (0); } อื่นถ้า (ราคา> = xixi.getPrice () && xixi.getStatus ()! = 0) {system.out.println ("สมัครสมาชิก" + xixi.getLocation ()); xixi.setstatus (0); } อื่นถ้า (ราคา> = xihu.getPrice () && xihu.getStatus ()! = 0) {system.out.println ("การจอง" + xihu.getLocation ()); xihu.setstatus (0); } else {system.out.println ("เสนอราคาต่ำเกินไป/ไม่มีรายชื่อ ... "); - ระบบย่อย
การรวบรวมระบบย่อย: ใช้ฟังก์ชั่นระบบย่อยและจัดการงานที่กำหนดโดยวัตถุด้านหน้า (โปรดทราบว่าไม่มีข้อมูลด้านหน้าในระบบย่อยนั่นคือไม่มีการอ้างอิงวัตถุด้านหน้า):
/** * @author jifang * @Since 16/8/23 10:12 AM */คลาสสาธารณะ xihuapartment {ตำแหน่งสตริงส่วนตัว; ราคาสองเท่าส่วนตัว สถานะ int ส่วนตัว; xihuapartment สาธารณะ (ตำแหน่งสตริงราคาสองสถานะสถานะ int) {this.location = ตำแหน่ง; this.price = ราคา; this.status = สถานะ; } public String getLocation () {return location; } สาธารณะ double getPrice () {ราคาคืน; } public int getStatus () {สถานะการส่งคืน; } โมฆะสาธารณะ setStatus (สถานะ int) {this.status = สถานะ; }} คลาส xixiapartment {ตำแหน่งสตริงส่วนตัว; ราคาสองเท่าส่วนตัว สถานะ int ส่วนตัว; xixiapartment สาธารณะ (ตำแหน่งสตริงราคาสองสถานะสถานะ int) {this.location = ตำแหน่ง; this.price = ราคา; this.status = สถานะ; } public String getLocation () {return location; } สาธารณะ double getPrice () {ราคาคืน; } public int getStatus () {สถานะการส่งคืน; } โมฆะสาธารณะ setStatus (สถานะ int) {this.status = สถานะ; }} คลาส cuiyuanapartment {ตำแหน่งสตริงส่วนตัว; ราคาสองเท่าส่วนตัว สถานะ int ส่วนตัว; Public Cuiyuanapartment (ตำแหน่งสตริงราคาสองสถานะสถานะ int) {this.location = ตำแหน่ง; this.price = ราคา; this.status = สถานะ; } public String getLocation () {return location; } สาธารณะ double getPrice () {ราคาคืน; } public int getStatus () {สถานะการส่งคืน; } โมฆะสาธารณะ setStatus (สถานะ int) {this.status = สถานะ; - ลูกค้า
ด้วยวิธีนี้ลูกค้าเพียงติดต่อตัวแทนอสังหาริมทรัพย์และให้คำพูดกับเราและพวกเขาจะช่วยเราติดต่อเจ้าของบ้านทั้งหมดที่พบ:
ไคลเอนต์คลาสสาธารณะ {@Test Public Void Client () {MediumFacade Facade = ใหม่ MediumFacade (); ซุ้มเรนติ้งเฮาส์ (800); -สรุป
นักเรียนที่มีประสบการณ์ในการพัฒนาเชิงวัตถุอาจใช้เขาแม้ว่าพวกเขาจะไม่เคยได้ยินรูปแบบรูปลักษณ์เพราะเขารวบรวมความคิดของหลักการของการผกผันการพึ่งพาอาศัยกันอย่างสมบูรณ์แบบและกฎของ Dimit ซึ่งเป็นหนึ่งในรูปแบบที่ใช้กันมากที่สุด
ใช้
ก่อนอื่นในช่วงแรกของการออกแบบคุณควรแยกระดับลำดับชั้นอย่างมีสติเช่นสถาปัตยกรรมสามชั้นแบบคลาสสิกการสร้างซุ้มระหว่างเลเยอร์ซึ่งสามารถให้อินเทอร์เฟซอย่างง่ายสำหรับระบบย่อยที่ซับซ้อนและลดระดับการมีเพศสัมพันธ์อย่างมาก
ประการที่สองในขั้นตอนการพัฒนาระบบย่อยมักจะมีความซับซ้อนมากขึ้นเรื่อย ๆ เนื่องจากการสร้างใหม่อย่างต่อเนื่อง การเพิ่มซุ้มสามารถให้อินเทอร์เฟซอย่างง่ายและลดการพึ่งพาระหว่างโมดูล
ประการที่สามเมื่อรักษาระบบมรดกระบบอาจเป็นเรื่องยากมากที่จะรักษาและขยาย แต่เนื่องจากมีฟังก์ชั่นที่สำคัญมากข้อกำหนดใหม่จึงต้องพึ่งพา ในเวลานี้ซุ้มสามารถพัฒนาสำหรับระบบใหม่ให้อินเทอร์เฟซที่ค่อนข้างชัดเจนและเรียบง่ายสำหรับการออกแบบรหัสมรดกที่หยาบหรือมีความซับซ้อนสูงทำให้ระบบใหม่สามารถโต้ตอบกับด้านหน้าได้
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น