
الذهاب الأنماط
مجموعة منسقة من أنماط التصميم والتطبيق الاصطلاحية للغة GO.
شوكة من tmrts/go-patterns ولكن اندمجت مع شوكات أخرى رهيبة. يمكن أن تذهب مع أنماط في الاستجواب
اندماج repos
- دمج: https://github.com/nynicg/go-patterns
- دمج: https://github.com/weichou1229/go-patterns
- دمج: https://github.com/jianhan/go-paterns
- دمج: https://github.com/sakari-ai/go-patterns
- دمج : https: //github.com/restudy/go-patterns
الأنماط الإبداعية
| نمط | وصف | حالة |
|---|
| مصنع مجردة | يوفر واجهة لإنشاء عائلات من الأشياء التي تم إعادة توزيعها | ✔ |
| باني | يبني كائنًا معقدًا باستخدام كائنات بسيطة | ✔ |
| طريقة المصنع | تشويش كائن ما إلى دالة متخصصة لإنشاء مثيلات | ✔ |
| تجمع الأشياء | مثيلات وتحافظ على مجموعة من الكائنات من نفس النوع | ✔ |
| المفرد | يقيد إنشاء نوع لكائن واحد | ✔ |
الأنماط الهيكلية
| نمط | وصف | حالة |
|---|
| كوبري | يفصل واجهة عن تنفيذها بحيث يمكن أن يختلف الاثنان بشكل مستقل | ✔ |
| مركب | يتغلف ويوفر الوصول إلى عدد من الكائنات المختلفة | ✔ |
| ديكور | يضيف السلوك إلى كائن ، بشكل ثابت أو ديناميكي | ✔ |
| واجهة | يستخدم نوعًا واحدًا باعتباره API لعدد من الآخرين | ✔ |
| وزن الذبابة | يعيد استخدام مثيلات الكائنات الحالية مع حالة مماثلة/متطابقة لتقليل استخدام الموارد | ✔ |
| الوكيل | يوفر بديلًا لكائن للتحكم في أفعاله | ✔ |
| محول | يوفر بديلًا لكائن للتحكم في أفعاله | ✔ |
الأنماط السلوكية
| نمط | وصف | حالة |
|---|
| سلسلة المسؤولية | يتجنب اقتران المرسل إلى جهاز الاستقبال عن طريق إعطاء أكثر من كائن فرصة للتعامل مع الطلب | ✔ |
| يأمر | يحدد الأمر أمرًا وحججًا للاتصال لاحقًا | ✔ |
| وسيط | يربط الكائنات ويعمل كوكيل | ✔ |
| تذكار | قم بإنشاء رمز غير شفاف يمكن استخدامه للعودة إلى حالة سابقة | ✔ |
| المراقب | قدم رد اتصال لإخطار الأحداث/التغييرات على البيانات | ✔ |
| السجل | تتبع جميع الفئات الفرعية من فئة معينة | ✔ |
| ولاية | يتضمن سلوكًا مختلفًا لنفس الكائن بناءً على حالته الداخلية | ✔ |
| الاستراتيجية | يتيح اختيار سلوك الخوارزمية في وقت التشغيل | ✔ |
| نموذج | يحدد فئة الهيكل العظمي الذي يشجع بعض الطرق على الفئات الفرعية | ✔ |
| زائر | يفصل خوارزمية عن كائن يعمل عليه | ✔ |
| مترجم | تفسير لغتك الخاصة أو الأوامر المؤلفة | ✔ |
أنماط التزامن
| نمط | وصف | حالة |
|---|
| متغير الحالة | يوفر آلية للخيوط للتخلي مؤقتًا عن الوصول من أجل الانتظار لبعض الحالة | ✘ |
| قفل/mutex | يفرض حد الاستبعاد المتبادل على مورد للوصول الحصري | ✘ |
| شاشة | مزيج من أنماط متغير mutex و inction | ✘ |
| قفل القراءة والكتابة | يسمح بالوصول الموازي للقراءة ، ولكن فقط الوصول الحصري في عمليات الكتابة إلى مورد | ✔ |
| إشارة | يسمح بالتحكم في الوصول إلى مورد مشترك | ✔ |
أنماط التزامن
| نمط | وصف | حالة |
|---|
| N-Barrier | يمنع العملية من المتابعة حتى تصل جميع عمليات N إلى الحاجز | ✔ |
| التوازي المحدد | يكمل عدد كبير من المهام المستقلة مع حدود الموارد | ✔ |
| إذاعة | ينقل رسالة إلى جميع المستلمين في وقت واحد | ✘ |
| coroutines | روتين فرعي يسمح بتعليق واستئناف التنفيذ في مواقع معينة | ✘ |
| المولدات | ينتج عنه سلسلة من القيم واحدة تلو الأخرى | ✔ |
| مفاعل | طلبات خدمة demultiplexes يتم تسليمها بشكل متزامن إلى معالج الخدمة وإرسالها بشكل متزامن إلى معالجات الطلب المرتبطة بها | ✘ |
| التوازي | يكمل عدد كبير من المهام المستقلة | ✔ |
| منتج المستهلك | يفصل المهام عن عمليات إعدام المهام | ✔ |
أنماط المراسلة
| نمط | وصف | حالة |
|---|
| مروحة | مهام المسلح إلى حوض العمل (EG Server) | ✔ |
| مروحة | يوزع المهام بين العمال (EG Producer) | ✔ |
| العقود الآجلة والوعود | يعمل كحامل مكان للنتيجة غير معروفة في البداية لأغراض التزامن | ✔ |
| نشر/اشتراك | ينقل المعلومات إلى مجموعة من المستلمين الذين اشتركوا في موضوع ما | ✔ |
| دفع وسحب | يوزع الرسائل على العديد من العمال ، مرتبة في خط أنابيب | ✘ |
أنماط الاستقرار
| نمط | وصف | حالة |
|---|
| الحاجز | يفرض مبدأ احتواء الفشل (أي يمنع فشل متتالي) | ✘ |
| قاطع الدائرة | يوقف تدفق الطلبات عندما من المحتمل أن تفشل الطلبات | ✔ |
| موعد التسليم | يسمح للعملاء بالتوقف عن انتظار الاستجابة بمجرد أن يصبح احتمال الاستجابة منخفضًا (على سبيل المثال بعد انتظار 10 ثوانٍ لتحديث الصفحة) | ✔ |
| فشل | يتحقق من توافر الموارد المطلوبة في بداية الطلب ويفشل إذا لم تكن المتطلبات راضية | ✘ |
| المصافحة | يسأل مكونًا ما إذا كان يمكن أن يستغرق أي تحميل آخر ، إذا لم يستطع ذلك ، يتم رفض الطلب | ✘ |
| الحالة المستقرة | لكل خدمة تتراكم مورد ، يجب على بعض الخدمات إعادة تدوير هذا المورد | ✘ |
أنماط التنميط
| نمط | وصف | حالة |
|---|
| وظائف التوقيت | يلف وظيفة ويسجل التنفيذ | ✔ |
التعابير
| نمط | وصف | حالة |
|---|
| الخيارات الوظيفية | يسمح بإنشاء واجهات برمجة التطبيقات النظيفة مع الافتراضات العاقلة والتجاوزات الاصطلاحية | ✔ |
مكافحة النماذج
تنفيذ نمط
go-pattern-examples