وصف وضع قطعة واحدة
1. الوصف: وضع قطعة واحدة هو كائن تم إنشاء مثيل له في الوصول الثابت. لا يمكن الوصول إلى هذا الكائن إلا من خلال مدخل فريد ، أو كائن تم وضعه في إنشاء مثيله ؛ في اللغات الديناميكية من جانب الخادم ، مثل Java و .net C#، يمكن أن تضمن أن يتم تنفيذ عمليات الفصل بسلاسة وتجنب العمليات المتوازية التي تسبب الارتباك في البيانات ؛
2. فوائد وضع قطعة واحدة:
1>. تقليل العمليات الجديدة لتجنب تسريع عمليات الذاكرة المتكررة واحتلال الذاكرة ؛
2>. تقليل النفقات العامة للكائنات في الأنظمة الكبيرة ؛
3>. كما ذكر أعلاه ، يمكن أن يضمن أن أنواع معينة من العمليات لها تسلسلات وعمليات دقيقة لتجنب تشوهات البيانات الناتجة عن المعالجة المتوازية ؛
بالطبع ، الفوائد المذكورة أعلاه كلها في لغة الخادم. بلغة ضعيفة مثل JavaScript ، لا تقلق كثيرًا ، لأن البرامج النصية يتم تشغيلها على عميلك ، ولا توجد مشكلة في تعارضات التشغيل ؛ يعادل استخدام الخادم بأكمله وحده ، لذلك لا تقلق بشأن من سيقوم بتشغيل بياناتك ؛
رمز مصدر مثيل
نسخة الكود كما يلي:
var singleton = {
الحالة: NULL ،
Mailsender: Function () {
var self = this ؛
self.to = '' ؛
self.title = '' ؛
self.content = '' ؛
self.send = function () {
// إرسال الجسم
}
} ،
getInstance: function () {
if (this.instance == null) {
this.instance = new Singleton.Mailsender () ؛
}
إرجاع هذا.
}
}
كيفية استخدام:
نسخة الكود كما يلي:
var mail = singleton.getInstance () ؛
mail.to = 'toname#mail.com' ؛
mail.title = 'وضع قطعة واحدة إرسال' ؛
mail.content = 'send content' ؛
mail.send () ؛
عندما تكون بعض الأطر العالمية ، مثل أطر عمل واجهة المستخدم الغنية مثل DWZ ، إنشاء Singleton عالمي ، و Singleton.instance لها قيمة ، ليست هناك حاجة لإنشائها مرة أخرى ؛
بالطبع ، إذا كان مكتوبًا على هذا النحو ، فسيكون ذلك أكثر وضوحًا ، مثل لغة الخادم:
نسخة الكود كما يلي:
singleton.getInstance (). to = 'toname#mail.com' ؛
singleton.getInstance (). title = 'وضع قطعة واحدة إرسال' ؛
singleton.getInstance (). content = 'send content' ؛
singleton.getInstance (). send () ؛
التعليمات الفعلية الأخرى
أين هو وضع قطعة واحدة أكثر فائدة؟ على سبيل المثال ، عندما يكون هناك ملف تكوين موحد على خادم التشغيل ، مثل العمليات المتزامنة على نطاق واسع ، فأنت بحاجة إلى الانتباه إلى الموقف الذي يأتي فيه أولاً ثم يصل ، مثل سجلات العملية للتبادل ، وما إلى ذلك ، يمكن تشغيلها في وضع قطعة واحدة ؛
أيضا: طريقة وضع قطعة واحدة:
1. الطريق أعلاه يسمى كسول
2. كيفية العصي الجائعة:
نسخة الكود كما يلي:
var singleton = {
الحالة: singleton.mailsender () جديدة ،
Mailsender: Function () {
var self = this ؛
self.to = '' ؛
self.title = '' ؛
self.content = '' ؛
self.send = function () {
// إرسال الجسم
}
} ،
getInstance: function () {
إرجاع هذا.
}
}
بنفس الطريقة للاستخدام ؛
استخدم الإغلاق لإنشاء نمط من قطعة واحدة وإخفاء كائن المثيل
1. الكود:
نسخة الكود كما يلي:
var singleton = (function () {
var مثيل = null ؛
وظيفة mailsender () {
this.to = '' ؛
this.title = '' ؛
this.content = '' ؛
}
mailsender.prototype.send = function () {
// إرسال الجسم
}
يعود {
getInstance: function () {
if (مثيل == null) {
مثيل = جديد mailsender () ؛
}
مثيل العودة ؛
}
}
}) () ؛
2. كيفية استخدام:
نسخة الكود كما يلي:
// نفس الاستخدام
var mail = singleton.getInstance () ؛
mail.to = 'toname#mail.com' ؛
mail.title = 'وضع الإرسال المغلقة في قطعة واحدة' ؛
mail.content = 'send content' ؛
mail.send () ؛