1. الوصف
1) نمط المفرد: تأكد من وجود مثال واحد فقط من الفصل ، على إنشاء مثيل له بنفسك وقدم هذه الحالة للنظام
2) تصنيف نمط Singleton: نمط Singleton (وضع كائن إلى مرجعه الخاص عندما يتم تحميل الفصل) ، نمط Singleton البطيء (سيتم إنشاء مثيل للكائن فقط عندما تسمى الطريقة التي تحصل على المثيل ، مثل GetInstance) (Java Singleton أداء الوضع أفضل من وضع Lazy Singleton ، ويستخدم وضع Singleton Lazy بشكل عام في C ++)
3) عناصر نمط سينغلتون:
أ) طريقة البناء الخاصة
ب) تشير المرجعية الساكنة الخاصة إلى حالتها الخاصة
ج) الطريقة الثابتة العامة مع مثيلها الخاص كقيمة الإرجاع
2. مثال
وضع الجوع المفرد:
نسخة الكود كما يلي:
حزمة com.wish.modedesign ؛
من الطبقة العامة جروسينجلتون {
مثيل خاص ثابت ungrysingleton = جدد الجياع الجديد () ؛
undersingleton الخاص () {
}
الجياع الثابت العام getInstance () {
مثيل العودة ؛
}
}
وضع Singleton الكسول:
نسخة الكود كما يلي:
حزمة com.wish.modedesign ؛
الطبقة العامة سينجلتون {
Singleton الخاص () {
}
مثيل خاص ثابت في المفرد.
انتبه إلى سلامة الخيط عند متعددة الخيوط عند متعددة الخيوط الساكنة الثابتة العامة الثابتة المزامنة الثابتة المنفردة getInstance () {//
if (مثيل == null) {
مثيل = جديد singleton () ؛
}
مثيل العودة ؛
}
}
اختبار فئة Driver.java
نسخة الكود كما يلي:
حزمة com.wish.modedesign ؛
سائق الطبقة العامة {
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
Singleton S1 = Singleton.getInstance () ؛
Singleton S2 = Singleton.getInstance () ؛
System.out.println (S1 == S2) ؛
}
}
3. المزايا والسيناريوهات المعمول بها
1) مزايا وضع المفرد:
لا يوجد سوى كائن واحد في الذاكرة ، وحفظ مساحة الذاكرة.
يمكن تجنب الخلق المتكرر وتدمير الأشياء تحسين الأداء.
تجنب مهن متعددة للموارد المشتركة.
يمكن الوصول إليها على مستوى العالم.
2) السيناريوهات المعمول بها:
الأشياء التي تحتاج إلى إنشاء مثيل لها بشكل متكرر ثم تدميرها.
الكائنات التي تستغرق الكثير من الوقت أو الكثير من الموارد عند إنشاء كائنات ، ولكن غالبًا ما يتم استخدامها.
كائن يشبه الأداة.
الكائنات التي تصل بشكل متكرر قواعد البيانات أو الملفات.
4. أشياء يجب ملاحظتها عند استخدامها
1) عند الاستخدام ، لا يمكنك إنشاء Singleton مع وضع الانعكاس ، وإلا سيتم إنشاء كائن جديد.
2) انتبه إلى مشكلات سلامة الخيط عند استخدام وضع Singleton Lazy
3) نمط المفرد الجياع وطرق بناء أنماط المفرد الكسول على حد سواء ، وبالتالي لا يمكن مورث بعض أنماط المفرد (مثل الوضع المسجل)