คำอธิบายโหมดชิ้นเดียว
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 = ใหม่ singleton.mailsender ();
-
คืนสิ่งนี้
-
-
วิธีใช้:
การคัดลอกรหัสมีดังนี้:
var mail = singleton.getInstance ();
mail.to = 'toname#mail.com';
mail.title = 'โหมดชิ้นเดียวส่ง';
mail.content = 'ส่งเนื้อหา';
Mail.Send ();
เมื่อเฟรมเวิร์กทั่วโลกเช่นเฟรมเวิร์ก UI ที่ร่ำรวยเช่น DWZ สร้างซิงเกิลระดับโลกและ Singleton.Instance มีค่าไม่จำเป็นต้องสร้างอีกครั้ง
แน่นอนถ้ามันถูกเขียนเช่นนี้มันจะชัดเจนขึ้นและเช่นเดียวกับภาษาเซิร์ฟเวอร์:
การคัดลอกรหัสมีดังนี้:
singleton.getInstance (). ถึง = 'toname#mail.com';
singleton.getInstance (). title = 'โหมดชิ้นเดียวส่ง';
singleton.getInstance (). 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 () {
ถ้า (อินสแตนซ์ == null) {
อินสแตนซ์ = mailsender ใหม่ ();
-
อินสแตนซ์กลับ;
-
-
-
2. วิธีใช้:
การคัดลอกรหัสมีดังนี้:
// การใช้งานเดียวกัน
var mail = singleton.getInstance ();
mail.to = 'toname#mail.com';
mail.title = 'โหมดปิดชิ้นเดียวส่ง';
mail.content = 'ส่งเนื้อหา';
Mail.Send ();