أين وكيف تتفادى استخدام العقد لكل شيء في جودو

من موسوعة حسوب
< Godot
مراجعة 15:42، 1 سبتمبر 2023 بواسطة Naser-dakhel (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:أين وكيف تتفادى استخدام العقد لكل شيء في جودو}}</noinclude> العقد سهلة الإنشاء، ولكن...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

العقد سهلة الإنشاء، ولكن لديها محدودياتها، فيمكن أن يحتوي المشروع عشرات آلاف العقد العاملة، ولكن كلما زاد تعقيدها كلما زاد الضغط على أداء المشروع.

توفر جودو كائنات أخف لإنشاء واجهات برمجة تطبيقات التي تستخدم العقد، أبقي ذلك في عين الاعتبار كخيار عند تصميم كيفية بناء خاصيات مشروعك.

أولاً: الكائن Object: أبسط كائن خفيف يجب أن يستخدم الكائن الأصلي إدارة الذاكرة اليدوي، ومع ذلك ليس من الصعب إنشاء هيكلية بيانات خاصة حتى هيكلية العقد، وهي أخف من صنف العقدة

  • مثال: لاحظ عقدة الشجرة، تدعم مستوى عالي من التعديل لجدول المحتوى مع عدد عشوائي من الصفوف والأعمدة. البيانات المستخدمة لإنشاء التصوير هي حقيقةً كائنات TreeItem.
  • ميزات: تبسيط واجهات برمجة التطبيقات إلى كائنات ذات نطاق أصغر تساعد في تحسين الوصول ووقت التكرار. بدلًا من العمل مع مكتبة العقدة كاملة، يمكن اختصار مجموعة الكائنات يستطيع منها إنشاء وإدارة العقد الفرعية المناسبة

ملاحظة: يجب الانتباه عند التعامل معهم، إذ يمكن تخزين الكائن في متغير ولكن هذه المراجع يمكن أن تصبح غير صالحة بدون سابق إنذار. مثلًا إذا قرر من أنشئ الكائن حذفه، هذا سيعطي حالة خطأ إذا قرر أحدهم الوصول إليه لاحقًا.

ثانيًا: RefCounted: أعقد قليلًا من الكائن. تتبع المراجع لنفسها وتحذف الذاكرة فقط عندما لا يبقى أي مرجع لنفسه. إن هذه مفيدة في معظم الحالات عندما نحتاج لبيانات في صنف مخصص

  • مثال: لاحظ كائن FileAccess إنه يعمل مثل كائن عادي عدا أنه ليس هناك حاجة لحذفه
  • ميزات: نفس ميزات الكائن

ثالثًا: المورد Resource: وهي معقدة أكثر من RefCounted لديها الخاصية الداخلية لسلسلة/ إزالة سلسلة (أي حفظ وتحميل) خصائص الكائن الخاص بهم من/إلى ملفات جودو المصدرية.

  • مثال: البرامج النصية، PackedScene (من أجل ملفات المشهد) والأنواع الأخرى مثل كل صنف AudioEffects. يمكن حفظ وتحميل كل هذه، أي هي تمتد من الموارد.
  • الميزات: تحدثنا عن ميزات الموارد وعن طرق تخزين البيانات التقليدية، ولكن في سياق استخدام الموارد بدلًا من العقد، هذه تتميز بتوافق مع الفاحص. وهي بنفس خفة الكائنات و RefCounted يمكنها أيضًا إظهار وتصدير الخاصيات في الفاحص. هذا يسمح لهم لشغل دور مثل العقد الفرعية عن استعمالية الواجهة، ولكن أيضًا تحسن الأداء إذا كان الهدف أن يكون هناك أكبر عدد ممكن من المواد/العقد في المشهد.

مصادر