| المفهوم البرمجي | الشرح بالعربية | شكل الكود البرمجي |
|---|---|---|
| إنشاء الفئات (Classes) | تعريف القالب الأساسي للكائن مع تحديد الخصائص ودالة البناء | class User { constructor(public name: string) {} } |
| دالة البناء (Constructor) | الدالة المسؤولة عن تهيئة الكائن وتلقي البيانات الأولية عند إنشائه | constructor(private id: number) {} |
| إنشاء كائن جديد (Instantiation) | استخدام كلمة new لتوليد كائن فعلي من الفئة المصممة | const user = new User("أحمد"); |
تُعتبر البرمجة الكائنية (Object-Oriented Programming - OOP) العمود الفقري لإطار عمل Angular 22.1، حيث تُبنى جميع مكونات التطبيق (Components)، والخدمات (Services)، والـ Directives على هيئة فئات (Classes). توفر لك لغة TypeScript دعماً كاملاً وهيكلة واضحة لتطبيق مبادئ البرمجة الكائنية لتنظيم الكود وإعادة استخدامه باحترافية عالية.
الفئة بمثابة "مخطط هندسي" أو قالب يصف شكل البيانات والوظائف التي سيمتلكها الكائن. تتكون الفئة عادة من:
المتغيرات التي تحمل بيانات الكائن.
الوظائف التي تنفذ العمليات المرتبطة بهذا الكائن.
هي دالة خاصة تُستدعى تلقائياً وفوراً عند إنشاء كائن جديد من الفئة. تُستخدم غالباً لتمرير القيم الأساسية وتهيئة الكائن ليكون جاهزاً للاستخدام داخل مكونات Angular.
هنا نقوم بإنشاء قالب يمثل مستخدماً في النظام مع خصائص ودالة لطباعة بياناته:
| 1 | class UserProfile { |
| 2 | // خصائص الفئة |
| 3 | constructor(public username: string, private role: string) {} |
| 4 | |
| 5 | // دالة (Method) لعرض بيانات المستخدم |
| 6 | getDetails(): string { |
| 7 | return `المستخدم: ${this.username} - الصلاحية: ${this.role}`; |
| 8 | } |
| 9 | } |
| 10 | |
| 11 | // إنشاء كائن (Instance) فعلي من الفئة |
| 12 | let myUser = new UserProfile("أحمد علي", "مطور واجهات"); |
| 13 | console.log(myUser.getDetails()); |
غالباً ما نستخدم الفئات لتنظيم هيكل البيانات القادمة من الخادم (Models):
| 1 | class ProductItem { |
| 2 | constructor( |
| 3 | public id: number, |
| 4 | public title: string, |
| 5 | public price: number, |
| 6 | public inStock: boolean |
| 7 | ) {} |
| 8 | |
| 9 | // دالة لحساب السعر مع الخصم |
| 10 | calculateDiscount(discountPercent: number): number { |
| 11 | return this.price - (this.price * discountPercent / 100); |
| 12 | } |
| 13 | } |
| 14 | |
| 15 | let item = new ProductItem(1, "شاشة ذكية", 3000, true); |
| 16 | let finalPrice = item.calculateDiscount(10); // خصم 10% |