وضع المظهر: المعروف أيضًا باسم وضع الواجهة: توفر واجهة المظهر واجهة متسقة لمجموعة من واجهات النظام الفرعي ، مما يجعل هذه المجموعة من الأنظمة الفرعية سهلة الاستخدام (تقلل من تعقيد النظام الأصلي عن طريق إدخال دور للمظهر الجديد ، مع تقليل الاقتران بين فئة العميل والنظام الفرعي).
مصدر الصورة: نمط التصميم: أساس البرامج الموجهة للكائنات القابلة لإعادة الاستخدام.
ينجز
متطلبات الحالة: استئجار منزل
يمكن للطلاب الذين عانوا من العثور على منزل واستئجار منزل أن يدركوا أن العثور على منزل مؤلم للغاية. ليس عليهم فقط أن يركضوا من مجتمع إلى آخر ، ولكن عليهم أيضًا المساومة مع المالك (الثاني). لذلك تعلموا أن يكونوا أذكياء ولم يعودوا يتحدثون مع بعضهم البعض ، لكنهم عثروا مباشرة على وكيل عقاري مثل ليانجيا وأنا أحب عائلتي. لديهم كمية معينة من إمدادات السكن في أيديهم. نحتاج فقط إلى دفع عمولة لهم ، حتى يتمكنوا من المساومة مع المالك نيابة عنا. معظمهم محترفون للغاية ، وتوفير الوقت والمال. في هذا الوقت ، يكون الوكيل العقاري واجهة ، ومستأجر المنزل هو النظام الفرعي الفرعي:
واجهة
فئة المظهر: تعرف على الأنظمة الفرعية المسؤولة عن التعامل مع الطلبات ، والوكلاء الوكلاء لطلب العميل إلى كائن النظام الفرعي المناسب:
الطبقة العامة mediumfacade {private cuiyuanapartment cuiyuan ؛ خاص Xixiapartment Xixi ؛ Xihuapartment الخاص Xihu ؛ MediumFacade العامة () {cuiyuan = cuiyuanapartment جديد ("مجتمع cuiyuan" ، 900 ، 1) ؛ xixi = New Xixiapartment ("Xixi Garden" ، 1200 ، 1) ؛ xihu = new xihuapartment ("Xihu Community" ، 2600 ، 1) ؛ } public void 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) ؛ } آخر {system.out.println ("عرض منخفض جدًا/لا قائمة ...") ؛ }}} النظام الفرعي
جمع النظام الفرعي: تنفيذ وظائف النظام الفرعي ومهام التعامل مع كائنات الواجهة (لاحظ أنه لا توجد معلومات واجهة في النظام الفرعي ، أي أنه لا يوجد مرجع كائن واجهة):
/** * Author Jifang * since 16/8/23 10:12 AM. */الفئة العامة xihuapartment {موقع سلسلة خاصة ؛ سعر مزدوج خاص ؛ حالة int الخاصة ؛ XIHUAPartment العامة (موقع السلسلة ، السعر المزدوج ، حالة int) {this.location = location ؛ this.price = السعر ؛ this.status = الحالة ؛ } السلسلة العامة getLocation () {return location ؛ } public double getPrice () {return price ؛ } public int getStatus () {return status ؛ } public void setStatus (int status) {this.status = status ؛ }} class xixiapartment {private string location ؛ سعر مزدوج خاص ؛ حالة int الخاصة ؛ Public XixiApartment (موقع السلسلة ، السعر المزدوج ، حالة int) {this.location = location ؛ this.price = السعر ؛ this.status = الحالة ؛ } السلسلة العامة getLocation () {return location ؛ } public double getPrice () {return price ؛ } public int getStatus () {return status ؛ } public void setStatus (int status) {this.status = status ؛ }} class cuiyuanapartment {private string location ؛ سعر مزدوج خاص ؛ حالة int الخاصة ؛ public cuiyuanapartment (موقع السلسلة ، السعر المزدوج ، الحالة int) {this.location = location ؛ this.price = السعر ؛ this.status = الحالة ؛ } السلسلة العامة getLocation () {return location ؛ } public double getPrice () {return price ؛ } public int getStatus () {return status ؛ } public void setStatus (int status) {this.status = status ؛ }} عميل
وبهذه الطريقة ، يتصل العميل ببساطة بوكيل عقاري ويعطينا اقتباسًا ، وسوف يساعدنا في الاتصال بجميع الملاك الذين يجتمعون:
Client Client {Test public void client () {mediumfacade facade = new MediumFacade () ؛ واجهة. Rentinghouse (800) ؛ }}ملخص
قد يكون الطلاب الذين لديهم خبرة في التنمية الموجهة نحو الكائن قد استخدموه حتى لو لم يسمعوا أبدًا عن أنماط المظهر ، لأنه يجسد تمامًا فكرة مبدأ انعكاس الاعتماد وقانون Dimit ، وهو أحد الأنماط الأكثر استخدامًا.
يستخدم
بادئ ذي بدء ، في المرحلة المبكرة من التصميم ، يجب عليك فصل المستويات الهرمية بوعي ، مثل بنية كلاسيكية من ثلاث طبقات ، وتأسيس واجهة بين الطبقات ، والتي يمكن أن توفر واجهة بسيطة للأنظمة الفرعية المعقدة وتقليل درجة الاقتران بشكل كبير.
ثانياً ، في مرحلة التطوير ، غالبًا ما تصبح الأنظمة الفرعية أكثر تعقيدًا بسبب إعادة الإعمار المستمر. يمكن أن توفر إضافة واجهة واجهة بسيطة وتقليل التبعيات بين الوحدات النمطية.
ثالثًا ، عند الحفاظ على نظام قديم ، قد يكون من الصعب للغاية الحفاظ على النظام والتوسع ، ولكن لأنه يحتوي على وظائف مهمة للغاية ، يجب أن تعتمد متطلبات جديدة عليه. في هذا الوقت ، يمكن تطوير واجهة للنظام الجديد ، مما يوفر واجهة واضحة وبسيطة نسبيًا لتصميم الكود القديم الخشن أو العالي ، مما يسمح للنظام الجديد بالتفاعل مع الواجهة ، ويتفاعل الواجهة مع الرمز القديم لجميع الأعمال المعقدة.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.