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