ما هو النمط
كنت أستعد للامتحان النهائي منذ فترة ، لكنه كان شخصًا مضنيًا وكنت مشغولاً حقًا. لم يكن لدي وقت لتحديث المقال. اليوم سأخبرك عن أنماط التصميم في JavaScript.
بادئ ذي بدء ، ما نحتاج إلى معرفته هو أن هذا النمط هو حل قابل لإعادة الاستخدام ، في حين أن مكافحة النموذج هو حل سيء لمشكلة معينة.
أمثلة شائعة لمضادات النباتات من JS
1. تمرير السلاسل إلى setTimeout و setInterval ، وليس الوظائف ، والتي تؤدي إلى الاستخدام الداخلي لـ eval ().
2. تحديد عدد كبير من المتغيرات في السياق العالمي لتلويث مساحة الاسم العالمية
3. قم بتعديل النموذج الأولي لفئة الكائن
4. استخدم JS INLINE ، ولا يمكن تضمين رمز JS المضمّن في ملفات HTML في أدوات اختبار الوحدة الخارجية.
5. وثيقة الإساءة. الكتابة. إذا قمت بتنفيذ المستند. الكتابة بعد تحميل الصفحة ، فسيتم إعادة كتابة الصفحة التي نكون فيها. إذا كان بإمكانك استخدام المستند.
فئة أنماط التصميم
إنشاء نمط تصميم
تركز أنماط التصميم الإبداعي على التعامل مع آليات إنشاء الكائنات لإنشاء كائنات بطريقة تناسب وضع معين. تشمل السمات التي تنقص في هذه الفئة ما يلي:
مُنشئ مُنشئ ، مصنع المصنع ، التجريد التجريدي ، النموذج الأولي ، المفرد المفرد ومولد البناء
نمط التصميم الهيكلي
ترتبط الأنماط الهيكلية بمجموعات الكائنات ويمكن استخدامها في كثير من الأحيان لإيجاد طرق بسيطة لإقامة علاقات بين كائنات مختلفة.
تتضمن الأنماط التي تندرج في هذه الفئة ما يلي:
ديكور ديكور ، مظهر واجهة ، موسوعة الوزن الذبابة ، محول محول ووكيل وكيل
نمط تصميم السلوك
تركز أنماط السلوك على تحسين أو تبسيط التواصل بين كائنات مختلفة في النظام.
تشمل أنماط السلوك:
ITERATAR ITERATOR ، وسيط الوسيط ، المراقب المراقب ، وزوار الزوار
وضع المصنع
لحل مشكلة إعلانات الكائنات المماثلة المتعددة ، يمكننا استخدام طريقة تسمى نمط المصنع ، والتي تتمثل في حل مشكلة إنشاء الكائنات مع عدد كبير من التكرار.
نسخة الكود كما يلي:
<script type = "text/javaScript">
وظيفة createObject (الاسم والعمر والمهنة) {// وظيفة إنشاء مثيل لها {//
var obj = new Object () ؛
obj.name = الاسم ؛
obj.age = العمر ؛
obj.profession = المهنة ؛
obj.move = function () {
إرجاع this.name + 'في' + this.age + 'المشاركة في' + this.profession ؛
} ؛
إرجاع OBJ ؛
}
var test1 = createObject ('TrigKit4' ، 22 ، 'Programmer') ؛ // first extreen
var test2 = createObject ('Mike' ، 25 ، 'Engineer') ؛ // المثيل الثاني
التنبيه (test1.move ()) ؛
التنبيه (test2.move ()) ؛
</script>
فئة نموذج المصنع
ينقسم نمط المصنع إلى مصانع بسيطة ومصانع مجردة ومصانع ذكية. يتطلب نمط المصنع استخدام مُنشئ دون عرضه.
نمط المصنع البسيط: استخدم فئة (عادةً مونومر) لإنشاء مثيل.
نمط المصنع المعقد: استخدم الفئات الفرعية لتحديد مثيل فئة محدد يجب أن يكون متغير العضو.
فوائد نموذج المصنع
الميزة الرئيسية هي أنه يمكنه القضاء على الاقتران بين الكائنات باستخدام الأساليب الهندسية بدلاً من الكلمات الرئيسية الجديدة. تركيز جميع الكود الذي تم إنشاء مثيل له في مكان واحد لمنع ازدواجية الكود.
عيوب نموذج المصنع
من الأفضل استخدام معظم الفئات مع كلمات رئيسية جديدة ومشاركات ، والتي يمكن أن تجعل القراءة أسهل في القراءة. بدلا من التحقق من طريقة المصنع لمعرفة.
يحل نمط المصنع مشكلة التكرار المتكرر ، ولكن هناك مشكلة أخرى ، أي تحديد المشكلة ، لأنه من المستحيل معرفة مثيل الكائن الذي هم عليه.
نسخة الكود كما يلي:
تنبيه (typeof test1) ؛ //هدف
تنبيه (test1 مثيل كائن) ؛ //حقيقي
متى تستخدم وضع المصنع؟
يستخدم وضع المصنع بشكل أساسي في السيناريوهات التالية:
1. عندما يتضمن كائن أو مكون تعقيدًا كبيرًا
2. عندما يكون من الضروري توليد حالات مختلفة من الكائنات بسهولة وفقًا للبيئات المختلفة التي توجد فيها
3. عند التعامل مع العديد من الكائنات أو المكونات الصغيرة التي تشترك في نفس السمات
وضع المنشئ
في ECMASCRIPT ، يمكن استخدام المنشآت (المُنشئين) لإنشاء كائنات محددة. يمكن لهذا الوضع حل المشكلة التي لا يمكن أن يتعرف وضع المصنع أعلاه على مثيلات الكائن.
نسخة الكود كما يلي:
<script type = "text/javaScript">
وظيفة وظيفة (نموذج ، سنة ، أميال) {// وضع المنشئ
this.model = نموذج ؛
هذا.
this.miles = miles ؛
this.run = function () {
return this.model + "فعلت" + this.miles + "miles" ؛
}
}
var benz = سيارة جديدة ('Benz' ، 2014،20000) ؛
var bmw = سيارة جديدة ("BMW" ، 2013،12000) ؛
تنبيه (benz مثال السيارة) ؛ // أعرّفها بوضوح على أنها مرؤوس للسيارة ، صحيح
console.log (benz.run ()) ؛
console.log (bmw.run ()) ؛
</script>
باستخدام طريقة المنشئ يحل مشكلة التكرار المتكرر ومشكلة التعرف على الكائن. الفرق بين هذا النمط ونمط المصنع هو:
1. إنشاء كائن (كائن جديد ()) لا يتم عرضه بواسطة طريقة المنشئ ؛
2. تعيين السمات والأساليب مباشرة لهذا الكائن ؛
3. لا بيان العودة.
هناك بعض المواصفات لطرق المنشئ:
1. اسم الوظيفة والمُنشئ الذي تم إنشاؤه هو نفسه ورسمته (PS: ليس إلزاميًا ، ولكن كتابة هذا يساعد على التمييز بين المُنشئين والوظائف العادية) ؛
2. لإنشاء كائن من خلال مُنشئ ، يجب استخدام المشغل الجديد.
نظرًا لأنه يمكن إنشاء كائن من خلال مُنشئ ، من أين جاء هذا الكائن وأين تم تنفيذ Object ()؟ عملية التنفيذ هي كما يلي:
1. عند استخدام المنشئ ويتم استخدام المنشئ الجديد () ، يتم تنفيذ الكائن الجديد () في الخلفية ؛
2. نطاق المنشئ إلى كائن جديد (أي الكائن الذي تم إنشاؤه بواسطة كائن جديد ()) ، وهذا في جسم الوظيفة يمثل الكائن الذي ينتجه كائن جديد ().
3. تنفيذ الكود داخل المنشئ ؛
4. إرجاع الكائن الجديد (العودة مباشرة في الخلفية).
مُنشئ مع النموذج الأولي (مُنشئ)
هناك خاصية تسمى النموذج الأولي في JS. بعد استدعاء مُنشئ JS لإنشاء كائن ما ، سيكون للكائن الجديد جميع خصائص النموذج الأولي للمنشئ. وبهذه الطريقة ، يمكن إنشاء كائنات السيارات المتعددة ويمكن الوصول إلى نفس النموذج الأولي.
نسخة الكود كما يلي:
<script type = "text/javaScript">
وظيفة السيارة (نموذج ، سنة ، أميال) {
this.model = نموذج ؛
هذا.
this.miles = miles ؛
}
car.prototype.run = function () {
return this.model + "فعلت" + this.miles + "miles" ؛
} ؛
var benz = سيارة جديدة ('S350' ، 2010،20000) ؛
Var Ford = سيارة جديدة ('Ford' ، 2012،12000) ؛
console.log (benz.run ()) ؛ // "S350 قام 20000 ميل"
console.log (ford.run ()) ؛
</script>
الآن يمكن مشاركة مثيل واحد من Run () بين جميع كائنات السيارات.