هذه مقالة قصيرة عن أنماط التصميم في جافا. لن تكون هناك أي تطبيقات للأنماط، بل مجرد قائمة بالأنماط في Java مع وصف موجز لكل منها. بالنسبة لأولئك الذين هم على دراية بالموضوع بالفعل، سيكون هذا مفيدًا كمراجعة وملخص. على العكس من ذلك، فإن أولئك الذين يتعلمون عن الأنماط لأول مرة سيستفيدون من هذا كنظرة عامة أولية على الموضوع قبل التعمق أكثر. أنماط التصميم في جافا [الجزء 1] - 1 أنماط التصميم هي حلول جاهزة للاستخدام لمهام البرمجة التي تحدث بشكل متكرر. إنها ليست فئة أو مكتبة يمكن ربطها بمشروع. إنه شيء أكثر. يتم تنفيذ أنماط التصميم المناسبة لكل مهمة في كل حالة محددة. يجب أن تتذكر أنه عند تطبيقه بشكل غير صحيح أو على مهمة غير مناسبة، يمكن لنمط التصميم أن يخلق الكثير من المشاكل. ومع ذلك، يمكن أن يساعدك النمط المطبق بشكل صحيح على إكمال المهام بسهولة وبساطة.

أنواع الأنماط:

  • إبداعي
  • الهيكلي
  • سلوكية
توفر الأنماط الإبداعية آليات التهيئة، مما يسمح لك بإنشاء كائنات بطرق مناسبة. تحدد الأنماط الهيكلية العلاقات بين الفئات والأشياء، مما يسمح لها بالعمل معًا. تُستخدم الأنماط السلوكية لتبسيط التفاعل بين الكيانات.

إبداعية:

  • Singleton - يقيد إنشاء فئة لمثيل واحد، ويوفر الوصول إلى هذا المثيل الفردي.

  • المصنع - يُستخدم عندما يكون لدينا فئة فائقة تحتوي على فئات فرعية متعددة ونحتاج إلى إرجاع فئة فرعية بناءً على الإدخال.

  • المصنع المجرد – يستخدم مصنعًا فائقًا لإنشاء المصانع، والتي نستخدمها بعد ذلك لإنشاء الكائنات.

  • منشئ - يستخدم لإنشاء كائنات معقدة باستخدام كائنات بسيطة. يقوم تدريجياً بإنشاء كائن كبير من كائن صغير وبسيط.

  • النموذج الأولي - يساعد على تحسين الأداء عند إنشاء كائنات مكررة؛ بدلاً من إنشاء كائن جديد، يقوم بإنشاء وإرجاع نسخة من كائن موجود.

الهيكلي:

  • محول - محول بين كائنين غير متوافقين. يمكننا استخدام نمط المحول للجمع بين واجهتين غير متوافقتين.

  • مركب - يستخدم فئة واحدة لتمثيل بنية الشجرة.

  • الوكيل - يوفر وظيفة فئة أخرى.

  • وزن الذبابة — يعيد استخدام الكائنات بدلاً من إنشاء عدد كبير من الكائنات المتشابهة.

  • الواجهة — توفر واجهة بسيطة للعميل، والتي تستخدم الواجهة للتفاعل مع النظام.

  • Bridge — يجعل فئات معينة مستقلة عن الفئات التي تنفذ الواجهة.

  • الديكور - يضيف وظائف جديدة إلى كائن موجود دون الارتباط ببنيته.

السلوكية:

  • طريقة القالب - تحدد خوارزمية أساسية وتسمح للأحفاد بتجاوز بعض خطوات الخوارزمية دون تغيير بنيتها العامة.

  • الوسيط - يوفر فئة وسيطة تتعامل مع جميع الاتصالات بين الفئات المختلفة.

  • سلسلة المسؤولية - تجعل من الممكن تجنب الاعتماد الصارم بين المرسل والمتلقي للطلب؛ علاوة على ذلك، يمكن معالجة الطلب بواسطة عدة كائنات.

  • المراقب - يسمح لكائن واحد بمراقبة الأحداث التي تحدث في كائنات أخرى والاستجابة لها.

  • الإستراتيجية - تسمح بتغيير الاستراتيجيات (الخوارزميات) في وقت التشغيل.

  • الأمر - واجهة تعلن عن طريقة لتنفيذ إجراء معين.

  • الحالة - تسمح للكائن بتغيير سلوكه اعتمادًا على حالته.

  • الزائر — يستخدم لتبسيط العمليات على مجموعات من الكائنات ذات الصلة.

  • مترجم - يحدد القواعد النحوية للغة بسيطة في مجال المشكلة.

  • Iterator - يصل بشكل تسلسلي إلى عناصر المجموعة دون معرفة شكلها الأساسي.

  • Memento — يُستخدم لتخزين حالة الكائن؛ يمكن استعادة هذه الحالة لاحقًا.

أثناء تقدمك في دورة CodeGym، ستواجه بعض الأنماط في هذه القائمة. أوصي بالمهام التالية حول الأنماط: 1522 , 1530 , 1631 , big01 , 2912 , 3107 ... يؤدي الاستخدام الحكيم لأنماط التصميم إلى صيانة أكواد برمجية أكثر موثوقية، لأنه بالإضافة إلى حقيقة أن أنماط التصميم تعد حلولًا جيدة للمشاكل الشائعة ، يمكن للمطورين الآخرين التعرف عليهم، مما يقلل من الوقت اللازم للعمل مع تعليمات برمجية معينة.