Latest web development tutorials

وضع الوكيل

في وضع وكيل (وكيل نمط)، فئة من المهام نيابة عن فئة أخرى. هذا النوع من أنماط التصميم تنتمي إلى النموذج الهيكلي.

في وضع وكيل، ونحن خلق كائن مع كائن موجود من أجل توفير واجهة وظيفية للعالم الخارجي.

مقدمة

القصد: توفير وكيل للتحكم في الوصول إلى هذا الكائن إلى كائنات أخرى.

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

متى تستخدم: عندما تريد أن تفعل شيئا للتحكم في الوصول إلى فئة.

كيفية إصلاح: إضافة طبقة المتوسطة.

رمز مفتاح: وصلة مع مجموعات فئة وكيل.

أمثلة التطبيق: 1، اختصارات ويندوز في الداخل.2، ذهب الخنزير إلى ارتفاع Cuilan تغيير نتيجة القرد، يمكن فهم: المستخرجة ظهور Cuilan عالية، وارتفاع الفيروز الأزرق أنا والقرد تطبق هذه الواجهة، خنزير المتحركة High Cuilan عندما لا يرى الملك القرد، حتى أن الملك القرد هو Cuilan مرتفعة الطبقة الوكيل. 3، وليس بالضرورة لشراء تذاكر القطار في محطة للشراء، يمكنك أيضا الانتقال إلى منافذ البيع. 4، شيك أو شهادة الإيداع المصرفية هي أموال حساب الوكيل. يستخدم الاختيار المعاملات في السوق بدلا من النقود، ويتيح مراقبة حساب رأس المال المصدر. 5، ربيع اوب.

المزايا: 1، مسؤوليات واضحة.2، والتدرجية العالية. 3، ذكي.

العيوب: 1، وبين العميل وموضوع حقيقي من أن الكائن الوكيل، وحتى بعض نوع من وضع الوكيل قد يؤدي إلى تباطؤ الطلب سرعة المعالجة.2، لتحقيق وضع الوكيل يتطلب عملا إضافيا لتحقيق بعض وضع الوكيل معقد جدا.

سيناريوهات الاستخدام: وفقا لتقسيم المسؤوليات، وعادة ما يكون سيناريوهات الاستخدام التالية: 1، وكيل عن بعد.2. تنبيهات. 3، النسخ عند الكتابة وكلاء. 4، وحماية (حماية أو Access) وكيل. 5، ذاكرة التخزين المؤقت وكيل. 6، وجدار الحماية (جدار) وكيل. 7، والتزامن (التزامن) وكيل. 8، والمراجع الذكية (سمارت المرجعي) وكيل.

ملاحظة: الفرق بين 1 و محول وسائط: نمط محول تغييرات كبيرة توخت اجهة الكائن، ولا يمكن تغييرها وضع الوكيل من قبل عناصر من واجهة الطبقة.الفرق بين 2 و الديكور أنماط: ديكور لتعزيز وظيفة، ووضع الوكيل هو أن يكون للرقابة.

تحقيق

سنقوم إنشاء واجهةصورةوتنفيذ واجهةصورةالطبقات الكيان.ProxyImageهو فئة وكيل، والحد من أثر الذاكرةRealImageالكائنات التي يتم تحميلها.

ProxyPatternDemo،ونحن لشرح استخدام الطبقةProxyImageللحصول علىكائن صورةليتم تحميلها وعرضها على الطلب.

نمط الوكيل UML الرسم البياني

خطوة 1

إنشاء واجهة.

Image.java

الواجهة العمومية صورة {
   عرض باطل ()؛
}

خطوة 2

إنشاء فئة الجهة التي تطبق الواجهة.

RealImage.java

الطبقة العامة RealImage تنفذ صورة {

   اسم سلسلة الخاص؛

   RealImage العام (اسم سلسلة) {
      this.fileName = اسم الملف.
      loadFromDisk (اسم الملف)؛
   }

   Override
   عرض باطلة العامة () {
      System.out.println ( "عرض" + اسم الملف)؛
   }

   خاص الفراغ loadFromDisk (اسم سلسلة) {
      System.out.println ( "تحميل" + اسم الملف)؛
   }
}

ProxyImage.java

الطبقة العامة ProxyImage تنفذ صورة {

   خاصة RealImage realImage.
   اسم سلسلة الخاص؛

   ProxyImage العام (اسم سلسلة) {
      this.fileName = اسم الملف.
   }

   Override
   عرض باطلة العامة () {
      إذا (realImage == فارغة) {
         realImage = RealImage الجديد (اسم الملف)؛
      }
      realImage.display ()؛
   }
}

خطوة 3

عند الطلب، استخدامProxyImageللحصول على وجوه الطبقةRealImage.

ProxyPatternDemo.java

الطبقة العامة ProxyPatternDemo {
	
   (وسائط سلسلة []) العامة ساكنة باطلة الرئيسية {
      صورة صورة = ProxyImage الجديد ( "test_10mb.jpg")؛

      // تحميل صورة من القرص image.display ()؛ 
      System.out.println ( "")؛
      // صور لا يمكن تحميل من image.display القرص ()؛ 	
   }
}

خطوة 4

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

تحميل test_10mb.jpg
عرض test_10mb.jpg

عرض test_10mb.jpg