Latest web development tutorials

نمط تحكم الجبهة

يستخدم جبهة تحكم نمط (المراقب أمام نمط) لتوفير آلية مركزية لمعالجة طلبات، تتم معالجة كافة الطلبات المقدمة من معالج واحد. معالج يمكن أن تفعل التوثيق / ترخيص / تسجيل أو طلب تتبع، ثم الطلب إلى معالج المناسبة. ما يلي هو كيان من هذا النمط التصميم.

  • أمام المراقب المالي (المراقب الجبهة) - معالج واحد لمعالجة كافة أنواع الطلبات تطبيق، قد يكون التطبيق تطبيق على شبكة الإنترنت التي يمكن أن تكون التطبيقات المستندة إلى سطح المكتب.
  • جدولة (مرسل) - تحكم الأمامية قد تستخدم كائن مرسل لإرسال طلب إلى معالج معين المناسب.
  • عرض (عرض) - الرأي هو الهدف من الطلب وخلق.

تحقيق

فإننا سنضعFrontController،مرسل، على التوالي، وحدة تحكم الأمامية والمجدول.HomeViewوStudentView الرأي تظهر مجموعة متنوعة من وحدة تحكم الأمامية يتلقى طلبا لإنشاء.

FrontControllerPatternDemo، والطبقةمظاهرة لدينا لإثبات استخدامFrontControllerتحكم الجبهة نمط التصميم.

الجبهة نمط تحكم UML الرسم البياني

خطوة 1

إنشاء طريقة العرض.

HomeView.java

الطبقة العامة HomeView {
   عرض باطلة العامة () {
      System.out.println ( "عرض الصفحة الرئيسية")؛
   }
}

StudentView.java

الطبقة العامة StudentView {
   عرض باطلة العامة () {
      System.out.println ( "عرض الطلاب ل")؛
   }
}

خطوة 2

إنشاء مرسل مرسل.

Dispatcher.java

الطبقة العامة مرسل {
   خاصة StudentView studentView.
   خاصة HomeView homeView.
   مرسل العام () {
      studentView = StudentView الجديدة ()؛
      homeView = HomeView جديد ()؛
   }

   إرسال باطلة العامة (طلب سلسلة) {
      إذا (request.equalsIgnoreCase ( "الطالب")) {
         studentView.show ()؛
      } {شيء آخر
         homeView.show ()؛
      }	
   }
}

خطوة 3

إنشاء وحدة تحكم FrontController الجبهة.

Context.java

الطبقة العامة FrontController {
	
   مرسل مرسل الخاص؛

   FrontController الجمهور () {
      المرسل = مرسل جديد ()؛
   }

   isAuthenticUser منطقية خاصة () {
      System.out.println ( "مصادقة العضو بنجاح.")؛
      العودة الحقيقية.
   }

   خاص الفراغ trackRequest (طلب سلسلة) {
      System.out.println ( "طلب الصفحة:" + الطلب).
   }

   dispatchRequest الفراغ الجمهور (طلب سلسلة) {
      // سجل كل طلب trackRequest (طلب)؛
      // لمصادقة المستخدم إذا (isAuthenticUser ()) {
         dispatcher.dispatch (طلب)؛
      }	
   }
}

خطوة 4

FrontControllerللتدليل على استخدام نمط تصميم وحدة تحكم الجبهة.

FrontControllerPatternDemo.java

الطبقة العامة FrontControllerPatternDemo {
   (وسائط سلسلة []) العامة ساكنة باطلة الرئيسية {
      FrontController frontController = FrontController الجديدة ()؛
      frontController.dispatchRequest ( "الوطن")؛
      frontController.dispatchRequest ( "الطالب")؛
   }
}

خطوة 5

تحقق من الانتاج.

طلب الصفحة: HOME
مصادقة المستخدم بنجاح.
عرض الصفحة الرئيسية
طلب الصفحة: STUDENT
مصادقة المستخدم بنجاح.
عرض الطالب الصفحة