يتم استخدام وضع المحول هنا. نظرًا لأن أنواع وحدة التحكم مختلفة وهناك طرق تنفيذ متعددة ، فإن طريقة الاتصال ليست حتمية. إذا كنت بحاجة إلى استدعاء طريقة وحدة التحكم مباشرة ، فأنت بحاجة إلى كتابتها في الكود على النحو التالي:
if (mappedHandler.gethandler () easuleof multiActionController) {((MultiActionController) mappedHandler.gethandler ()). افترض أنه إذا أضفنا مونترولرًا صلبًا ، فنحن بحاجة إلى إضافة سطر إذا (mappedHandler.gethandler () مثيل HardController)
هذا النموذج يجعل البرنامج من الصعب الحفاظ على المبدأ الافتتاح والإغلاق في نمط التصميم وينتهكه في نمط التصميم - فتح الإضافات والإغلاق للتعديلات.
لذلك ، يحدد Spring واجهة محول بحيث يكون لكل وحدة تحكم فئة تنفيذ محول مقابلة.
دع المحول ينفذ الطريقة المقابلة بدلاً من وحدة التحكم. وبهذه الطريقة ، عند تمديد وحدة التحكم ، تحتاج فقط إلى إضافة فئة محول لإكمال امتداد springMVC. إنه حقًا نهج ذكي للغاية!
إذا كنت لا تقول الكثير من الهراء ، فما عليك سوى وضع الكود فيه. لمعرفة بوضوح ، يمكنك تنفيذ مجموعة من التعليمات البرمجية لمحاكاة SpringMVC بنفسك. من السهل تقليل تركيزك عن طريق لصق رمز مصدر الربيع مباشرة.
// تحديد واجهة محول للواجهة العامة معالج الواجهة {الدعم المنطقي العام (معالج الكائن) ؛ مقبض الفراغ العام (معالج الكائن) ؛} // التالي هو ثلاثة أنواع من أجهزة التحكم في الواجهة العامة {system.out. الفئة SimpleController تنفذ وحدة التحكم {public void dosimplerHandler () {system.out.println ("Simple ...") ؛}} inchantationcontroller public inclupes {public void doannotationhandler () {system.out.println ( {Public Void Handle (معالج الكائن) {((SimpleController) Handler) .dosimplerHandler () ؛} دعم منطقي عام (معالج الكائن) {return (Handler extrealof simpleController) ؛}} فئة عامة HttphandlerAdapter تنطس معالج {void void public (معنا هاملر) {((httpcontroller) معالج) .dohttphandler () ؛} الدعم المنطقي العام (معالج الكائن) {return (مثيل معالج httpcontroller) ؛}} innotationHandlerArderlerderderderderderderderderler ؛ الدعم المنطقي (معالج الكائنات) {return (مثيل معالج من التعليقات التوضيحية Controller) ؛}}} // محاكاة مراسلة الاستيراد java.util.arraylist ؛ import java.util.list ؛ public dispatchservlet {public static list <HandlerAdapter> HandlerAdapters = New ArrayList <Alnderadapter> () ؛ DispatchServlet () {HandlerAdapters.add (التعليقات التوضيحية الجديدة ()) أي نوع من وحدة التحكم التي يتم تنفيذها ، يمكن للمحول دائمًا الحصول على النتيجة المطلوبة بعد التكيف // httpcontroller controller = new httpcontroller () ؛ // enrotationController Controller = New annotationController () ؛ SimpleController Controller = جديد SimpleController () ؛ // احصل على محول معالج المحول المقابل = Gethandler (وحدة التحكم) ؛ // تنفيذ وحدة التحكم المقابلة المحول المقابلة. this.handlerAdapters) {if (adapter.supports (controller)) {return Adapter ؛}} return null ؛} public static void main (String [] args) {new DispatchServlet (). dodispatch () ؛}}من خلال هذا النموذج ، يمكننا أن نرى روعة رمز المصدر المفتوح. عندما ننظر إلى رمز المصدر الإطار ، نحتاج إلى قراءته ، حتى نجد الكثير من الأشياء التي نحتاج إلى تعلمها. حاليًا ، تشرح العديد من المنشورات التي تحلل رمز المصدر في الغالب ، كيف ، كيف ،
هذه هي كيفية جذب الانتباه. أتمنى أن تتمكن من مناقشة "لماذا" معًا
لخص
ما سبق هو كل شيء عن مثال رمز وضع محول springMVC في هذه المقالة ، وآمل أن يكون مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!