ملخص - مصنع السيارات
جزء من قسم Object Oriented Programming في رحلة Lua على Coddy — الدرس 11 من 70.
التحدي
سهللنقم ببناء فئة Car كاملة تجمع كل ما تعلمته في هذا الفصل! ستقوم بإنشاء نظام مصنع سيارات حيث يكون لكل سيارة طرازها ولونها الخاص، مما يوضح التنظيم الصحيح للوحدات (modules) والمثيلات (instances) المستقلة.
ستقوم بتنظيم الكود الخاص بك عبر ملفين:
Car.lua: قم بتعريف فئةCarباتباع نمط النموذج الأولي (prototype pattern) القياسي. تحتاج فئتك إلى منشئ:new(model, color)يقوم بإنشاء سيارات بخصائصها الخاصة. قم بتضمين تابع:describe()يسمح لكل سيارة بتقديم نفسها.main.lua: استدعِ وحدة Car الخاصة بك وقم بإنشاء مثيلات متعددة للسيارات لإثبات أن كل سيارة تحتفظ بحالتها المستقلة.
يجب أن يقوم التابع :describe() بالطباعة بهذا التنسيق الدقيق:
A [color] [model]ستتلقى أربعة مدخلات:
- طراز السيارة الأولى
- لون السيارة الأولى
- طراز السيارة الثانية
- لون السيارة الثانية
في ملفك الرئيسي، قم بإنشاء سيارتين باستخدام المدخلات المقدمة واجعل كل واحدة تصف نفسها في سطر منفصل.
على سبيل المثال، إذا كانت المدخلات هي Sedan، و blue، و Truck، و red، فيجب أن تكون النتيجة:
A blue Sedan
A red Truckيجب أن تخزن كل سيارة طرازها ولونها الخاص، مما يثبت أن فئتك تنشئ مثيلات مستقلة حقاً.
جرّب بنفسك
-- استدعاء وحدة Car
local Car = require('Car')
-- قراءة المدخلات
local model1 = io.read()
local color1 = io.read()
local model2 = io.read()
local color2 = io.read()
-- TODO: إنشاء مثيلين للسيارة باستخدام Car:new()
-- TODO: استدعاء :describe() لكل سيارة لطباعة أوصافها
جميع دروس 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 للابنالمشترك مقابل الفريدملخص - التسلسل الهرمي للأشكال