وصف نمط المصنع التجريدي
1. مشاكل نموذج طريقة المصنع: في نموذج طريقة المصنع ، يتطلب إنشاء فصول المرور عبر فئة المصنع. إذا كنت ترغب في تمديد البرنامج ، فيجب عليك تعديل فئة المصنع. هذا ينتهك مبدأ الإغلاق ، ويفتح التمديدات والإغلاق للتعديلات ؛ هناك بعض المشاكل مع التصميم.
2. كيفية حلها: تحتاج إلى استخدام نموذج المصنع التجريدي ، مما يعني إنشاء فئات المصنع للفئات الوظيفية بشكل منفصل ، بحيث لا تضطر إلى تعديل الكود السابق وتوسيع الوظائف.
3. نموذج المصنع هو في الواقع إنشاء مكالمات إلى طريقة المصنع الموحدة لتنفيذ فئة التنفيذ التي تنفذ الواجهة نفسها ، لكن JavaScript لا تحتوي على رقم الواجهة ، لذلك تتم إزالة طبقة التنفيذ هذه ، ولكن يجب أن تكون الأعضاء وطرق فئة وظيفة BIT هي نفسها ؛
مثال رمز مصدر المصنع التجريدي
1. فئة إرسال البريد الإلكتروني :
نسخة الكود كما يلي:
وظيفة mailsender () {
this.to = '' ؛
this.title = '' ؛
this.content = '' ؛
}
mailsender.prototype.send = function () {
// إرسال الجسم
}
2. فئة إرسال الرسائل القصيرة:
نسخة الكود كما يلي:
وظيفة smssender () {
this.to = '' ؛
this.title = '' ؛
this.content = '' ؛
}
smssender.prototype.send = function () {
// إرسال الجسم
}
3. هذا هو في الأصل فئة واجهة المصنع ، ولكن تتم إزالتها هنا ؛ إنشاء مصانع فئة وظيفية مختلفة مباشرة ؛
1>. فئة مصنع البريد:
نسخة الكود كما يلي:
وظيفة mailfactory () {
}
mailfactory.prototype.produce = function () {
إرجاع mailsender الجديد () ؛
}
2>. فئة مصنع الرسائل القصيرة:
نسخة الكود كما يلي:
وظيفة smsfactory () {
}
smsfactory.prototype.produce = function () {
إرجاع smssender جديد () ؛
}
4. كيفية استخدام:
نسخة الكود كما يلي:
var factory = new MailFactory () ؛
var sender = factory.produce () ؛
sender.to = 'toname#mail.com' ؛
sender.title = 'Abstract Factory Pattern' ؛
sender.content = 'إرسال المحتوى' ؛
المرسل.
تعليمات أخرى
يستخدم وضع المصنع في اللغات الموجهة للكائنات مثل Java و .net C# واجهات. الواجهات متوفرة طرق لتكشاف مختلف المستخدمين الخارجيين ، وشرح الطرق لتطبيق هذه الوظيفة وكيف يجب على المستخدمين استخدام هذه الواجهة. يتم التعبير عن الكائنات في شكل فئات ، تمثل بعض التجريد في العالم الحقيقي. ربما سيكون للمشهد العديد من التطبيقات المماثلة ، مثل إرسال البريد الإلكتروني ، وإرسال الرسائل القصيرة ، والأساليب الترويجية المختلفة في المركز التجاري ، بالإضافة إلى مختلف الطيور والوحوش في عالم الحيوانات.
إذا لم نوفر للمستخدمين استخدام المستخدم في شكل واجهة ، فسنقدم حتماً للمستخدمين كائنات الفئة الوظيفية الحقيقية ، ويمكن للمستخدمين تعديل وتوسيع كائنات الفئة في الإرادة ، وهو أمر غير مسموح به.
يمكن لوضع طريقة المصنع ووضع المصنع التجريدي حل هذه المشكلات بشكل جيد. يمكن للمستخدمين استخدام الواجهة فقط للاتصال بفئة المصنع لأداء العمليات المحددة ؛ يستخدم وضع المصنع التجريدي وظيفة التمديد ، وتنفيذ فئة الفئة الوظيفية وفئة المصنع امتدادًا على مستوى الفئة المعني على الواجهة المقابلة ، ولن يتضمن تعديل فئات أو طرق أخرى ؛