إعداد المشروع
جزء من قسم Object Oriented Programming في رحلة Lua على Coddy — الدرس 19 من 70.
التحدي
سهللنقم ببناء الأساس لنظام مدير الأشكال (Shape Manager)! سيكبر هذا المشروع على مدار الدروس القليلة القادمة، لذا سنبدأ بإعداد هيكل ملفات نظيف مع فئة أساسية تسمى Shape.
ستقوم بإنشاء ملفين لتنظيم الكود الخاص بك:
Shape.lua: قم بتعريف فئةShapeأساسية باستخدام نمط النموذج الأولي (prototype pattern). كل شكل له سمةname(مثل "Circle" أو "Rectangle"). قم بتضمين منشئ:new(name)يقبل اسم الشكل، وطريقة:getName()التي تعيده.main.lua: ابعث الحياة في فئة Shape الخاصة بك عن طريق استدعاء الوحدة (requiring the module) وإنشاء مثيل (instance) للشكل. اقرأ اسم الشكل من المدخلات، وأنشئ Shape بهذا الاسم، واطبع نتيجة استدعاء:getName().
ستعمل هذه الفئة الأساسية كأب لأشكال محددة مثل Rectangle و Circle في الدروس القادمة. في الوقت الحالي، ركز على ضبط هيكل الفئة بشكل صحيح — إعداد __index، ونمط المنشئ (constructor pattern)، وطريقة الحصول على القيمة (getter method).
المدخلات: سطر واحد يحتوي على اسم الشكل (سلسلة نصية).
المخرجات: اسم الشكل الذي تعيده الدالة :getName().
جرّب بنفسك
-- استدعاء وحدة Shape
local Shape = require('Shape')
-- قراءة اسم الشكل من المدخلات
local shapeName = io.read()
-- TODO: إنشاء مثيل Shape جديد بالاسم المعطى
-- TODO: طباعة نتيجة استدعاء :getName() على الشكل الخاص بك
جميع دروس Object Oriented Programming
4مشروع: بنك رقمي
إعداد المشروعطريقة الإيداع7تعدد الأشكال وإعادة التعريف
إعادة تعريف الدوالاستدعاء دوال الفئة الأبDuck Typingواجهة مشتركةالتحقق من النوعمراجعة - أدوار الموظفين2نمط النموذج الأولي للفئات
مفهوم النموذج الأوليالربط باستخدام __indexالمنشئ :new()تهيئة الخصائصنسخ مستقلةملخص - مصنع السيارات5تحميل المعاملات في OOP
جمع الكائناتطرح الكائناتدمج الكائناتمقارنة الكائنات (<, >)مراجعة - رياضيات المحفظة8التغليف
اصطلاحات التسميةاستخدام Closures للخصوصيةالوصول عبر Closuresجداول للقراءة فقطمنطق التحقق من الصحةمراجعة - الخزنة الآمنة11أنماط التصميم (مبسط)
دوال المصنعجدول Singletonنمط الـ Iteratorالمراقب (المستمع)مراجعة - مصنع الـ Logger3حالة الكائن وسلوكه
متغيرات النسخةدالات الجلب (Getter Methods)دالات التعيين (Setter Methods)الخصائص المحسوبةتنسيق النصوصالتحقق من المساواةمراجعة - درجة الطالب6أساسيات الوراثة
إعداد الوراثةوراثة الـ Methodsتوسيع الـ Constructorإضافة Methods للابنالمشترك مقابل الفريدملخص - التسلسل الهرمي للأشكال