باستخدام نمط الوحدة للمشاريع الكبيرة
-
01-10-2019 - |
سؤال
أنا مهتم باستخدام نمط الوحدة لتنظيم مشاريعي المستقبلية بشكل أفضل. لسوء الحظ ، لا يوجد سوى عدد قليل من البرامج التعليمية القصيرة وأمثلة إثبات المفهوم لنمط الوحدة النمطية.
باستخدام نمط الوحدة ، أود تنظيم مشاريع في هذا النوع من الهيكل:
project.arm.object.method();
عندما يكون "Project" هو اسم مشروعي العالمي ، "ARM" هو قسم فرعي أو فرع للمشروع ، "Object" هو كائن فردي ، وهكذا إلى الأساليب والخصائص.
ومع ذلك ، لست متأكدًا من كيفية إعلان وتنظيم "أذرع" و "كائنات" متعددة تحت "المشروع".
var project = window.project || {};
project.arm = project.arm || {};
project.arm.object = (function() {
var privateVar = "Private contents.";
function privateMethod() {
alert(privateVar);
}
return {
method: privateMethod
};
}());
هل هناك أفضل الممارسات أو الاتفاقيات عند تحديد بنية الوحدة النمطية المعقدة؟ هل يجب أن أعلن فقط ذراع/كائن جديد تحت الأخير؟
المحلول
إليك كتابة جيدة على ما تتبعه ؛ http://www.adequalitygood.com/2010/3/javascript-module-patern-in-depth
نصائح أخرى
دوجو dojo.declare
رائع لهذا النوع من الأشياء منذ ذلك
قم بإنشاء مُنشئ باستخدام تدوين مضغوط للميراث وتمديد النموذج الأولي.
كما أنه مناسب حقًا حتى لو لمجرد إزالة هذا النوع من لوحة المرجل:
var project = window.project || {};
project.arm = project.arm || {};
إذا كنت تريد فقط هذه الميزة ، فيمكنك استخدامها dojo.setObject
, ، ولكن بالطبع ، فإن كتابة شيء لفعل الشيء نفسه أمر تافلي.
dojo.setObject("project.arm.object" (function() {
var privateVar = "Private contents.";
function privateMethod() {
alert(privateVar);
}
return {
method: privateMethod
};
}()));
لقد استخدمت مؤخرًا dojo.declare
/dojo.setObject
بالنسبة لمشروع JavaScript كبير (86 ملفًا ، 7K+ خطوط (لا تحسب التعليقات والخطوط الفارغة)) ، وكان نسيمًا للحفاظ على كل شيء منظمًا وقابل للإدارة ، خاصةً عندما يكون لديك آلية إدراج مثل dojo.require
و dojo.provide
.
هناك الكثير من الفروق الدقيقة لكيفية تفضيل الناس القيام بذلك ، ولكن الفائدة الرئيسية لما تسميه نمط الوحدة النمطية (النطاق المسمى) ، هو أن لا تشوش مساحة الاسم العالمية ، مما يساعد على إبقاء الأمور نظيفة إذا كنت جلب مكتبات أخرى وما إلى ذلك ، وتجنب تصادمات الاسم.
كيف تنظم الأسماء والنطاقات المتداخلة داخلها إلى حد كبير مسألة تفضيل شخصي.