التعريف: يوفر نمط المصنع التجريدي واجهة لإنشاء عائلات من الكائنات ذات الصلة أو التابعة دون تحديد فئاتها الملموسة. يكون هذا النمط مفيدًا بشكل خاص عندما يحتاج النظام إلى أن يكون مستقلاً عن كيفية إنشاء منتجاته وتكوينها وتمثيلها.
مثال الاستخدام: تخيل تطوير برنامج محاكاة يمكن أن يمثل بيئات مختلفة (الأرض والبحر والهواء). باستخدام نمط المصنع التجريدي ، يمكنك تحديد واجهة المصنع مع طرق لإنشاء أنواع مختلفة من الحيوانات والنباتات ، ثم تنفيذ مصانع ملموسة مختلفة لكل بيئة ، كل شيء يعرف كيفية إنشاء كائنات خاصة بتلك البيئة.
التعريف: يحدد نمط طريقة المصنع واجهة لإنشاء كائن ولكن يتيح للفئات الفرعية تحديد الفئة التي يجب إنشاءها. هذا النمط يولد مسؤولية إنشاء كائن إلى فئة فرعية ، مما يعزز اقتران فضفاض.
مثال الاستخدام: يمكن لتطبيق إدارة المستندات استخدام طريقة المصنع لإنشاء أنواع مختلفة من المستندات (النص ، المخططات ، العروض التقديمية). سيكون لكل نوع من المستندات فئة ملموسة لها ، وستقرر طريقة المصنع في الفئة الأساسية المستند الذي يجب إنشاؤه بناءً على إدخال المستخدم ، وبالتالي عزل رمز العميل من فئات المستندات الخرسانية.
التعريف: يفصل نمط المنشئ بناء كائن معقد عن تمثيله ، مما يسمح بنفس البناء لتقديم تمثيلات مختلفة. يكون هذا النمط مفيدًا عندما يحتاج كائن إلى إنشاء خطوات متعددة ، ويجب أن تكون عملية البناء هي نفسها للتمثيلات المختلفة.
مثال الاستخدام: فكر في منشئ السيارات الذي يمكنه إنشاء أنواع مختلفة من السيارات (الرياضة ، سيارات الدفع الرباعي ، القابلة للتحويل). باستخدام المنشئ ، يمكن توحيد عملية بناء هذه السيارات في خطوات مختلفة (هيكل البناء والمحرك والتصميمات الداخلية) بينما يتم التعامل مع التفاصيل المحددة لكل نوع سيارة من خلال بناة الخرسانة المختلفة.
التعريف: يسمح نمط سلسلة المسؤولية بتمرير طلب على طول سلسلة من المعالجات. يقرر كل معالج ما إذا كان سيتم معالجة الطلب أو تمريره إلى المعالج التالي في السلسلة.
مثال الاستخدام: في نظام HelpDesk ، قد يمر طلب الدعم عبر مستويات مختلفة من الدعم الفني. يفحص كل مستوى الطلب ويقرر ما إذا كان بإمكانه التعامل معه أو نقله إلى المستوى التالي. هذا يتجنب اقتران مرسل الطلب مع جهاز الاستقبال المحدد ويوزع المسؤولية بين الكائنات المختلفة.
التعريف: يحول نمط الأوامر طلبًا إلى كائن مستقل يحتوي على جميع المعلومات اللازمة لإجراء الإجراء. يتيح ذلك تحديد الطرق مع طلبات مختلفة ، وتأخير أو طوابير تنفيذ الطلب ، ودعم عمليات التراجع.
مثال الاستخدام: في تطبيق أتمتة المنزل ، يمكن تغليف أوامر مثل تشغيل/إيقاف تشغيل الأضواء أو ضبط ترموستات في كائنات الأوامر. يمكن إرسال هذه الأوامر بواسطة أجهزة مختلفة ، مثل الهواتف الذكية أو الأجهزة اللوحية ، ويمكن جدولةها أو التراجع عنها حسب الحاجة.
التعريف: يسمح نمط النموذج الأولي بنسخ الكائنات الموجودة دون جعل الرمز يعتمد على فئاتها. تنفذ كل فئة أولية واجهة النموذج الأولي ، والتي توفر طريقة لاستنساخ نفسها.
مثال على الاستخدام: في لعبة ، بدلاً من إنشاء كائنات من نقطة الصفر في كل مرة في مشهد ، يمكن استنساخ كائن "النموذج الأولي" لإنشاء نسخ متطابقة. يعد هذا مفيدًا بشكل خاص في سيناريوهات الألعاب حيث يمكن أن يكون إنشاء وتدمير العديد من الكائنات المماثلة كثيفة الأداء.
التعريف: يسمح نمط Memento بحفظ واستعادة الحالة السابقة لكائن ما دون الكشف عن تفاصيل تنفيذها الداخلي. هذا النمط مفيد لتنفيذ الميزات مثل التراجع في التطبيقات التي تتطلب القدرة على العودة إلى الحالات السابقة.
مثال الاستخدام: تخيل تطوير محرر نصوص يسمح للمستخدمين بالتراجع عن تغييرات النص. في كل مرة يتم فيها تحرير مهم ، يتم حفظ حالة المحرر في كائن تذكاري. إذا كان المستخدم يرغب في التراجع عن التغييرات ، فيمكن للمحرر استعادة الحالة من أحد كائنات Memento هذه ، مع عودة النص إلى حالته السابقة.
التعريف: يعرّف نمط الوسيط كائنًا يركز على التواصل المعقد والتبعيات بين الكائنات المتصلة ، مما يعزز اقتران فضفاض ومنع الكائنات من الإشارة مباشرة إلى بعضها البعض. هذا يتيح التعامل بشكل أفضل مع التفاعلات المعقدة ويحسن القدرة على الصيانة.
مثال الاستخدام: النظر في تطبيق مراقبة الحركة الجوية. بدلاً من السماح لكل طائرة بالتواصل مباشرة مع جميع الآخرين (إنشاء نظام معقد للغاية) ، يعالج وسيط - في هذه الحالة ، جميع الاتصالات. تتواصل الطائرات فقط مع برج التحكم ، الذي يوجه تصرفات كل طائرة ، مثل متى وأين تهبط.
التعريف: يحدد نمط طريقة القالب الهيكل العظمي للخوارزمية بطريقة ما ، ويؤجل بعض الخطوات التي سيتم تنفيذها بواسطة فئات فرعية. هذا يسمح بإعادة تعريف خطوات معينة من الخوارزمية دون تغيير بنية الخوارزمية.
مثال الاستخدام: فكر في إطار اختبار آلي. يمكن استخدام طريقة القالب لتحديد بنية اختبار قياسية ، حيث تحدد طريقة القالب تدفق تنفيذ الاختبار (الإعداد ، التنفيذ ، التنظيف). يمكن للفئات الفرعية اختبار محددة تخصيص كل خطوة من خلال تنفيذ طرق الإعداد وتنفيذ الاختبار الفعلي وعمليات التنظيف بعد الاختبار.
التعريف: ينشئ نمط المراقب علاقة واحدة إلى حد بين الكائنات بحيث عندما يغير كائن واحد الحالة ، يتم إخطار جميع المعالين وتحديثه تلقائيًا. يعد هذا النمط مفيدًا بشكل خاص لتنفيذ أنظمة إشعار الأحداث الموزعة ، حيث يجب أن تنعكس التغييرات على حالة واحدة في الوقت الفعلي في الأنظمة أو المكونات الأخرى.
مثال الاستخدام: النظر في نظام إدارة المناخ في مبنى ذكي. مراقبة مستشعرات درجة الحرارة (الناشرين) بشكل مستمر للبيئة ، وفي حالة تغييرات كبيرة ، ترسل تحديثات إلى أجهزة مختلفة (المراقبين) ، مثل مكيفات الهواء وأنظمة التدفئة ، والتي تتكيف وفقًا للحفاظ على درجة الحرارة المثلى. وبهذه الطريقة ، يمكن لنظام التحكم في المناخ أن يتفاعل ديناميكيًا مع الظروف البيئية دون تدخل بشري مباشر ، وضمان الراحة وكفاءة الطاقة.
التعريف: يتيح نمط الحالة للكائن تغيير سلوكه عندما تتغير حالتها الداخلية. يبدو كما لو أن الكائن يغير فئته. يعد هذا النمط مفيدًا للتعامل مع مواقف تغيير الحالة المعقدة ، مما يقلل من الحاجة إلى ظروف المتفرعة (IF-ELSE أو SWOWN) داخل الكود.
مثال الاستخدام: تخيل تطوير تطبيق لإدارة دورة حياة الطلب عبر الإنترنت. يمكن أن يكون الأمر في حالات مختلفة مثل "المعالجة" و "الشحن" و "تسليمها". باستخدام نمط الحالة ، يمكنك تحديد فئة Orvormerstate مع أساليب مثل Process () و Ship () و Develop (). ستقوم كل حالة ملموسة (على سبيل المثال ، ProcessingState ، ShiedudedState ، SenderState) بتنفيذ هذه الطرق للتعامل مع انتقالات الحالة بشكل مناسب. يحافظ السياق (على سبيل المثال ، فئة الطلب) على إشارة إلى حالات الحالة الحالية والمندوبين إلى كائنات الحالة الملموسة ، مما يسمح بسلوك الأمر بالتغيير بناءً على حالته الحالية دون تدخل مباشر من رمز العميل.
التعريف: نمط الاستراتيجية هو نمط سلوكي يسمح بتحديد عائلة من الخوارزميات ، وتغليفها في فئة مخصصة ، وجعل الكائنات قابلة للتبديل في هذا السياق. يتيح هذا النهج خوارزميات مختلفة بشكل مستقل عن العملاء الذين يستخدمونها.
مثال الاستخدام: تخيل تطبيق للتجارة الإلكترونية يحتاج إلى تنفيذ استراتيجيات حساب الضرائب المختلفة حسب بلد العميل. مع نمط الإستراتيجية ، يمكنك تحديد واجهة TaxStrategy باستخدام طريقة Complatetax () ثم تنفيذ استراتيجيات ملموسة مختلفة للسياقات الضريبية المختلفة ، مثل UstaxStrategy و EutaxStrategy و AsiataxStrategy.
التعريف: يوفر نمط التكرار وسيلة للوصول إلى عناصر كائن إجمالي متسلسل دون تعريض تمثيله الأساسي. هذا النمط مفيد بشكل خاص لإدارة أوضاع اجتياز مختلفة للمجموعة.
مثال الاستخدام: فكر في مجموعة من البيانات مثل شجرة أو رسم بياني. باستخدام نمط التكرار ، يمكنك توفير وصول موحد إلى عناصر هياكل البيانات المعقدة هذه دون أن يتعين على رمز العميل التعامل مع الاختلافات بين الهياكل المختلفة. على سبيل المثال ، يمكن أن يكون لديك تكرارات مختلفة مثل DepThFirstiterator و RenseThFirstIterator لاجتياز الرسم البياني.
التعريف: يسمح نمط الزائر بفصل الخوارزمية عن بنية الكائنات التي تعمل عليها. يوفر هذا النمط وسيلة لإضافة عمليات جديدة إلى الفئات الموجودة دون تعديلها.
مثال الاستخدام: تخيل وجود نظام لإدارة العملاء في سياق التأمين. يتيح نمط الزائر لكائن اجتياز قائمة العملاء وإرسال رسائل مخصصة فيما يتعلق بالتأمين.
التعريف: يسمح نمط المحول واجهات غير متوافقة بالعمل معًا. إنه بمثابة جسر بين اثنين من الواجهات غير المتوافقة عن طريق تحويل واجهة فئة موجودة إلى واجهة أخرى متوقعة من قبل العملاء.
مثال على الاستخدام: لنفترض أن لديك واجهة جديدة لتقديم المخططات ، ولكن المكتبة الحالية توفر وظائف مماثلة مع واجهة مختلفة. بدلاً من إعادة كتابة المكتبة الحالية ، يمكنك استخدام محول لجعل المكتبة الحالية تعمل مع واجهة العرض الجديدة ، وبالتالي تمكين التكامل السلس.
التعريف: نمط الجسر هو نمط هيكلي يفصل التجريد عن تنفيذه ، مما يسمح لهم بالتختلف بشكل مستقل. يتم استخدامه لتقسيم فئة كبيرة أو مجموعة من الفئات ذات الصلة الوثيقة إلى تسلسل هرميين منفصلين - التجريد والتنفيذ - يمكن تطويرها وتعديلها بشكل مستقل.
مثال على الاستخدام: في تطبيق توصيل البيتزا ، هناك أنواع مختلفة من البيتزا المتاحة ، ولكل منها ذوقها الفريد ، وأنواع مختلفة من المطاعم ذات أنماط الطهي المختلفة. عند تقديم طلب للبيتزا ، يستخدم التطبيق نمط الجسر للتأكد من أن البيتزا تتكون وفقًا لتفضيلات العميل وطهيها بعد النمط المحدد للمطعم المختار. وبهذه الطريقة ، يسهل نمط الجسر التكامل بين الأنواع المختلفة من البيتزا وأنماط الطهي المختلفة للمطاعم ، مما يسمح بالتسليم الفعال والشخصي.
التعريف: النمط المركب هو نمط هيكلي يسمح بمعالجة مجموعات الكائنات والأشياء الفردية بشكل موحد. ينظم هذا النمط الكائنات في بنية شجرة لتمثيل التسلسلات الهرمية الجزئية. يمكّن المستخدمين من العمل مع الكائنات الفردية وتراكيب الكائنات بشكل موحد.
مثال الاستخدام: تخيل وجود نظام إدارة مربع الهدايا يحتوي على عناصر فردية وغيرها من الصناديق. يقوم العميل بإنشاء مربع رئيسي ويضيف بعض العناصر مثل الكتب وألعاب الفيديو ، إلى جانب صندوق أصغر يحتوي على كتاب. ثم يتم حساب السعر الإجمالي لجميع العناصر داخل المربع الرئيسي. يسمح النمط المركب بمعالجة الكائنات الفردية وترسيح الكائن بنفس الطريقة ، مما يؤدي إلى تبسيط الكود وجعل العمليات موحدة على كل من الكائنات الفردية ومجموعات الكائنات.
التعريف: نمط الديكور هو نمط هيكلي يسمح بإضافة مسؤوليات إضافية إلى الكائنات ديناميكيًا دون تغيير بنيتها من خلال الميراث. يوفر هذا النمط بديلاً مرنًا لاشتقاق الفئات الممتدة لتوسيع الوظائف.
مثال الاستخدام: تخيل وجود نظام إشعار. يسمح نمط الديكور بتوسيع وظائف مختلف المنصات الاجتماعية. بهذه الطريقة ، يمكن إرسال الإخطارات من خلال قنوات مختلفة دون تعديل الكود مباشرة.
التعريف: نمط الواجهة هو نمط هيكلي يوفر واجهة موحدة لمجموعة من الواجهات في النظام الفرعي. يحدد هذا النمط واجهة عالية المستوى تجعل النظام الفرعي أسهل في الاستخدام.
مثال الاستخدام: فكر في نظام معقد لإدارة أجهزة الوسائط المتعددة في سيارة ، والتي تتضمن أنظمة فرعية لاتصال الصوت والفيديو والبلوتوث. يمكن أن توفر الواجهة واجهة بسيطة لبدء الموسيقى أو إيقاف الفيديو أو إدارة المكالمات ، وإخفاء التعقيد والتبعيات بين النظم الفرعية.
التعريف: نمط وزن الذبابة هو نمط هيكلي يستخدم المشاركة لدعم عدد كبير من الكائنات ذات الحبيبات الدقيقة بكفاءة. إنه مفيد بشكل خاص عندما يمكن مشاركة جزء كبير من حالة الكائن وجعله خارجيًا لها.
مثال الاستخدام: تخيل وجود تطبيق لإدارة أنواع الكتب. ويستخدم مصنع لإنشاء ومشاركة مثيلات من أنواع الكتب. وبهذه الطريقة ، إذا تم طلب نفس النوع من الكتب عدة مرات ، فسيتم إرجاع نفس الكائن بدلاً من إنشاء واحدة جديدة في كل مرة. هذا يحفظ الذاكرة ويحسن الأداء الكلي للتطبيق.
التعريف: يوفر نمط الوكيل بديلًا أو عنصرًا نائبًا لكائن آخر للتحكم في الوصول إليه. يتم استخدام هذا النمط عندما تريد فرض قيود على الوصول إلى كائن أو تحميل كسول أو لتوفير توطين شفاف لكائن في بيئة موزعة.
الاستخدام مثال: في التحكم في الوصول إلى نظام الملفات ، يمكن استخدام وكيل للتحكم في عمليات المستخدم على الملفات. يتحقق الوكيل من بيانات اعتماد المستخدم قبل السماح بالوصول الفعلي إلى الملف ، وتوفير أمان إضافي.
التعريف: نمط Singleton هو نمط إبداعي يضمن أن لدى الفصل مثيلًا واحدًا فقط مع توفير نقطة وصول عالمية إلى هذه الحالة.
مثال الاستخدام: في التطبيق ، يمكن استخدام نمط Singleton لإدارة تكوين التطبيق. يمكن أن يحتوي كائن Singleton على جميع التكوينات التي تظل ثابتة أثناء تنفيذ التطبيق ويمكن قراءتها من أجزاء مختلفة من البرنامج.