חולמים על קריירה בהייטק?
בדקו את הקורסים שלנו:
תכנות מונחה עצמים (OOP) ב-TypeScript
תכנות מונחה עצמים (OOP) ב-TypeScript
TypeScript היא שפה שמרחיבה את JavaScript באמצעות הוספת סגנון עבודה עם טיפוסים חזקים וכלים מתקדמים, ומתאימה מאוד לפיתוח מערכות מורכבות. אחד הכלים החשובים ביותר שמציעה TypeScript הוא תמיכה מלאה בתכנות מונחה עצמים (OOP). OOP הוא עקרון מרכזי בפיתוח תוכנה שמטרתו לספק ארגון ברור לקוד, תוך שמירה על הרחבה ותחזוקה פשוטים של פרויקטים.
העקרונות המרכזיים ב-OOP הם הכמסה (Encapsulation), הורשה (Inheritance) ופולימורפיזם (Polymorphism), לצד מופשטות (Abstraction). להלן הסבר מפורט על עקרונות אלו עם דוגמאות מעשיות ב-TypeScript.
מהי הכמסה (Encapsulation)?
הכמסה מתייחסת להסתרת הפרטים הפנימיים של האובייקט ושמירה על גישה מסודרת אליהם באמצעות מתודות. ב-TypeScript, ניתן להשתמש במילת המפתח private כדי להגדיר שדות שאינם נגישים מחוץ למחלקה:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class BankAccount {
private balance: number;
constructor(initialBalance: number) {
this.balance = initialBalance;
}
deposit(amount: number) {
this.balance += amount;
console.log(`Deposited ${amount}. New balance: ${this.balance}`);
}
getBalance() {
return this.balance;
}
}
const account = new BankAccount(100);
account.deposit(50); // Deposited 50. New balance: 150
console.log(account.getBalance()); // 150
באמצעות הכמסה, אנו מבטיחים שמירת יציבות וארגון בקוד על ידי מניעת גישה ישירה לשדות רגישים.
הורשה (Inheritance): הרחבת מחלקות
הורשה מאפשרת לנו ליצור מחלקות חדשות המבוססות על מחלקות קיימות, ובכך לשתף קוד ולצמצם חזרות. ב-TypeScript, ניתן להשתמש במילה השמורה extends כדי להגדיר מחלקה יורשת:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Vehicle {
constructor(protected brand: string) {}
start() {
console.log(`${this.brand} is starting...`);
}
}
class Car extends Vehicle {
drive() {
console.log(`${this.brand} is driving.`);
}
}
const myCar = new Car("Toyota");
myCar.start(); // Toyota is starting...
myCar.drive(); // Toyota is driving.
שימוש בהורשה עוזר לייצר היררכיה ברורה ומעודד שימוש חוזר בקוד משותף.
פולימורפיזם (Polymorphism): שימוש רב-צורתי
פולימורפיזם מאפשר למחלקות שונות להציג התנהגות ייחודית על בסיס מחלקת בסיס משותפת. לדוגמה:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Animal {
speak() {
console.log("Animal makes a sound");
}
}
class Dog extends Animal {
speak() {
console.log("Woof!");
}
}
class Cat extends Animal {
speak() {
console.log("Meow!");
}
}
const animals = [new Dog(), new Cat(), new Animal()];
animals.forEach(animal => animal.speak());
// Woof! Meow! Animal makes a sound
באמצעות פולימורפיזם, ניתן לכתוב קוד גמיש ומוכלל יותר, שמתאים לסוגים שונים של אובייקטים.
מופשטות (Abstraction)
מופשטות מאפשרת להגדיר מחלקות או מתודות כלליות שאינן ממומשות באופן מלא, אלא משאירות את המימוש למחלקות יורשות. ב-TypeScript, משתמשים במילה השמורה abstract:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
abstract class Shape {
abstract getArea(): number;
printArea() {
console.log(`The area is ${this.getArea()}`);
}
}
class Circle extends Shape {
constructor(private radius: number) {
super();
}
getArea() {
return Math.PI * this.radius ** 2;
}
}
const circle = new Circle(5);
circle.printArea(); // The area is 78.54
מופשטות מאפשרת להגדיר ממשקים כלליים למחלקות ומסייעת בעבודה עם סוגים מורכבים ומגוונים של אובייקטים.
שדות המחלקה: public, private, ו-protected
ב-TypeScript, שדות המחלקה יכולים להיות מוגדרים כ-public, private או protected כדי לשלוט בגישה אליהם:
1
2
3
4
5
class Example {
public a = 1;
private b = 2;
protected c = 3;
}
הגדרות אלו מסייעות לארגון נכון של המחלקה ומאפשרות הגבלת גישה מתאימה לתכונות השונות.
לסיכום
TypeScript מציעה שילוב עוצמתי בין תכנות מונחה עצמים לטיפוסים סטטיים, מה שמאפשר פיתוח מערכות מורכבות באופן מסודר ויעיל. OOP הוא עקרון שמעצים את גמישות הקוד ומקנה יתרון משמעותי ביצירת תוכנה מודרנית.
למידע נוסף על תכנות ב-TypeScript, אתם מוזמנים לבדוק את קורס צד השרת באתר קודבוקס או לקרוא במדריך הרשמי של TypeScript.
הצטרפו לאתר קודבוקס והתחילו ללמוד תכנות לבד.
אין צורך בידע מקדים, לומדים לתכנת מאפס.
פלטפורמת תכנות המוטמעת בדפדפן שתבדוק את הקוד שלכם בזמן אמת.
קודי, מורה הבינה המלאכותית של אתר קודבוקס שיעזור לכם בפתרון שאלות הקוד באתר.
צוברים מטבעות קודבוקס במהלך הלמידה,
