คำอธิบายรูปแบบของโรงงานนามธรรม
1. ปัญหาเกี่ยวกับรูปแบบวิธีการโรงงาน: ในรูปแบบวิธีการโรงงานการสร้างคลาสต้องผ่านคลาสโรงงาน หากคุณต้องการขยายโปรแกรมคุณต้องแก้ไขคลาสโรงงาน สิ่งนี้ละเมิดหลักการปิดเปิดสำหรับส่วนขยายและปิดสำหรับการแก้ไข; มีปัญหาบางอย่างเกี่ยวกับการออกแบบ
2. วิธีการแก้ปัญหา: คุณต้องใช้โมเดลโรงงานนามธรรมซึ่งหมายถึงการสร้างคลาสโรงงานสำหรับคลาสการทำงานแยกต่างหากเพื่อที่คุณจะได้ไม่ต้องปรับเปลี่ยนรหัสก่อนหน้าและขยายฟังก์ชั่น
3. แบบจำลองโรงงานกำลังสร้างการโทรไปยังวิธีการรวมโรงงานของการใช้งานคลาสการใช้งานที่ใช้อินเทอร์เฟซเดียวกัน แต่ JavaScript ไม่มีหมายเลขอินเทอร์เฟซดังนั้นเลเยอร์ของการใช้งานนี้จะถูกลบออก แต่สมาชิกและวิธีการของคลาสฟังก์ชันบิตควรเหมือนกัน
ตัวอย่างซอร์สโค้ดโรงงานนามธรรม
1. คลาสส่งอีเมล :
การคัดลอกรหัสมีดังนี้:
ฟังก์ชัน Mailsender () {
this.to = '';
this.title = '';
this.content = '';
-
mailsender.prototype.send = function () {
// ส่งร่างกาย
-
2. SMS ส่งคลาส:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น smssender () {
this.to = '';
this.title = '';
this.content = '';
-
smssender.prototype.send = function () {
// ส่งร่างกาย
-
3. นี่คือคลาสอินเตอร์เฟสของโรงงาน แต่จะถูกลบออกที่นี่ สร้างโรงงานคลาสการทำงานต่าง ๆ โดยตรง
1>. หมวดหมู่โรงงานอีเมล:
การคัดลอกรหัสมีดังนี้:
function mailfactory () {
-
mailfactory.prototype.produce = function () {
ส่งคืน mailsender ใหม่ ();
-
2>. หมวดหมู่โรงงาน SMS:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น smsfactory () {
-
smsfactory.prototype.produce = function () {
คืน SMSSENDER ใหม่ ();
-
4. วิธีใช้:
การคัดลอกรหัสมีดังนี้:
Var Factory = new MailFactory ();
var sender = factory.produce ();
sender.to = 'toname#mail.com';
Sender.title = 'รูปแบบโรงงานนามธรรม';
Sender.Content = 'ส่งเนื้อหา';
Sender.Send ();
คำแนะนำอื่น ๆ
โหมดโรงงานที่ใช้ในภาษาที่มุ่งเน้นวัตถุเช่น Java และ. Net C# ใช้อินเตอร์เฟส อินเทอร์เฟซเป็นวิธีที่พร้อมใช้งานเพื่อเปิดเผยผู้ใช้ภายนอกต่าง ๆ เพื่ออธิบายวิธีการใช้ฟังก์ชันนี้และวิธีที่ผู้ใช้ควรใช้อินเทอร์เฟซนี้ วัตถุจะแสดงในรูปแบบของชั้นเรียนซึ่งแสดงถึงสิ่งที่เป็นนามธรรมในโลกแห่งความเป็นจริง บางทีฉากอาจมีแอพพลิเคชั่นที่คล้ายกันมากมายเช่นการส่งอีเมลการส่ง SMS และวิธีการส่งเสริมการขายต่าง ๆ ในห้างรวมถึงนกและสัตว์ต่าง ๆ ในโลกสัตว์
หากเราไม่ได้ให้การใช้งานของผู้ใช้ในรูปแบบของอินเทอร์เฟซเราจะให้วัตถุคลาสการทำงานของผู้ใช้จริงและผู้ใช้สามารถแก้ไขและขยายวัตถุคลาสได้อย่างหลีกเลี่ยงไม่ได้ซึ่งไม่ได้รับอนุญาต
โหมดวิธีการโรงงานและโหมดโรงงานนามธรรมสามารถแก้ปัญหาดังกล่าวได้ดี ผู้ใช้สามารถใช้อินเทอร์เฟซเพื่อเรียกคลาสโรงงานเพื่อดำเนินการที่ระบุเท่านั้น โหมดนามธรรมโรงงานเพิ่มเติมใช้ฟังก์ชันส่วนขยายและคลาสการทำงานและคลาสโรงงานใช้ส่วนขยายระดับคลาสที่เกี่ยวข้องในอินเทอร์เฟซที่เกี่ยวข้องและจะไม่เกี่ยวข้องกับการปรับเปลี่ยนคลาสหรือวิธีการอื่น ๆ