فئة الكتاب مع الـ Composition
جزء من قسم Object Oriented Programming في رحلة JavaScript على Coddy — الدرس 51 من 56.
التحدي
إنشاء فئة Book باستخدام التركيب (Composition)
مهمتك:
- في الملف المسمى
Book.js، قم باستيراد فئةAuthorفي الأعلى - قم بإنشاء وتصدير فئة
Bookتحتوي على:- حقول خاصة:
#title، و#author، و#isCheckedOut - منشئ (Constructor) يأخذ
titleوauthor - اثنان من دوال الجلب (getters):
titleوauthorInfoالذي يعيد اسم المؤلف
- حقول خاصة:
- في
main.js، أضف استيراد فئةBook
كيفية تطبيق التركيب (Composition) هنا:
التركيب يعني علاقة "يحتوي على" (has-a). في فئة Book الخاصة بنا:
- الكتاب يحتوي على مؤلف (Book HAS-AN Author) (وليس "هو" مؤلف "is-an" Author)
- يحتوي الكتاب contains على مثيل (instance) من المؤلف كأحد مكوناته
- المؤلف موجود بشكل منفصل ويمكن استخدامه من قبل عدة كتب
- هذا هو التركيب: بناء كائنات معقدة (Book) من كائنات أبسط (Author)
جرّب بنفسك
import { Author } from './Author.js';
// TODO: استيراد فئة Book
// اختبارات
const author = new Author('J.K. Rowling');
const book = new Book('Harry Potter', author);
console.log('Book title:', book.title); // يجب أن تكون المخرجات: "Book title: Harry Potter"
console.log('Author:', book.authorInfo); // يجب أن تكون المخرجات: "Author: J.K. Rowling"جميع دروس Object Oriented Programming
1الكائنات والكلمة المفتاحية this
مراجعة سريعة: الكائناتإضافة Methods إلى الكائناتفهم الكلمة المفتاحية thisConstructor Functionsالكلمة المفتاحية newتحدي المراجعة7الوراثة والكلمة المفتاحية extends
الوراثةعلاقة "is-a"الكلمة المفتاحية extendsالدالة super()وراثة الخصائص والوظائفتحدي المراجعة2تنظيم الكود
ما هي الـ Modules؟التصدير باستخدام exportالاستيراد باستخدام importالـ Default مقابل الـ Named Exports8تنظيم كود OOP
تنظيم الـ Classes في Modules11مشروع: مصيّر الأشكال
إعداد: فئة Shape والتصديروراثة فئة Circle