سؤال

سأقوم قريبا بنشر مقال عن مدونتي, ، ولكن أود التأكد من أنني لم أفتقد أي شيء أولاً.

ابحث عن مثال فاتني، وسأذكره في رسالتي.

الموضوع فشل في تنفيذ Singleton:في أي الحالات يمكنك بطريق الخطأ الحصول على مثيلات متعددة من المفرد؟

حتى الآن توصلت إلى:

  • حالة السباق عند أول اتصال لـ instance()
  • دمجها في ملفات DLL أو DLL متعددة وقابلة للتنفيذ
  • تعريف القالب للمفردة - في الواقع فئات منفصلة

هل هناك طرق أخرى أفتقدها - ربما بالميراث؟

هل كانت مفيدة؟

المحلول

إذا كنت تستخدم حقل مثيل ثابتًا قمت بتهيئته في ملف cpp الخاص بك، فيمكنك الحصول على مثيلات متعددة (وسلوك أسوأ) إذا حاولت تهيئة بعض الثابت/العام الحصول على مثيل للمفرد الخاص بك.وذلك لأن ترتيب التهيئة الثابتة عبر وحدات الترجمة غير محدد.

نصائح أخرى

لا ينبغي أن يكون الميراث مشكلة طالما أن المسؤول خاص.

ومع ذلك، إذا لم تسمح بمنشئ النسخ، فقد يقوم المستخدمون بنسخ المثيل الفردي عن قصد.وراثة خاصة من دفعة :: غير قابلة للنسخ هي أسهل طريقة لمنع هذا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top